@patternfly/quickstarts 6.3.0-prerelease.3 → 6.3.0-prerelease.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ConsoleInternal/components/markdown-view.d.ts +2 -2
- package/dist/ConsoleInternal/components/utils/camel-case-wrap.d.ts +1 -1
- package/dist/ConsoleInternal/components/utils/status-box.d.ts +3 -3
- package/dist/ConsoleShared/src/components/markdown-extensions/MarkdownCopyClipboard.d.ts +3 -3
- package/dist/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.d.ts +2 -2
- package/dist/ConsoleShared/src/components/markdown-highlight-extension/MarkdownHighlightExtension.d.ts +2 -2
- package/dist/ConsoleShared/src/components/modal/Modal.d.ts +3 -3
- package/dist/ConsoleShared/src/components/popper/Portal.d.ts +3 -3
- package/dist/ConsoleShared/src/components/popper/SimplePopper.d.ts +3 -3
- package/dist/ConsoleShared/src/components/spotlight/InteractiveSpotlight.d.ts +2 -2
- package/dist/ConsoleShared/src/components/spotlight/Spotlight.d.ts +2 -2
- package/dist/ConsoleShared/src/components/spotlight/StaticSpotlight.d.ts +2 -2
- package/dist/ConsoleShared/src/components/status/GenericStatus.d.ts +4 -4
- package/dist/ConsoleShared/src/components/status/NotStartedIcon.d.ts +1 -2
- package/dist/ConsoleShared/src/components/status/PopoverStatus.d.ts +4 -4
- package/dist/ConsoleShared/src/components/status/Status.d.ts +3 -3
- package/dist/ConsoleShared/src/components/status/StatusIconAndText.d.ts +3 -3
- package/dist/ConsoleShared/src/components/status/icons.d.ts +4 -4
- package/dist/ConsoleShared/src/components/status/statuses.d.ts +4 -4
- package/dist/ConsoleShared/src/components/utils/FallbackImg.d.ts +3 -3
- package/dist/ConsoleShared/src/utils/useCombineRefs.d.ts +2 -2
- package/dist/HelpTopicDrawer.d.ts +3 -3
- package/dist/HelpTopicPanelContent.d.ts +2 -2
- package/dist/QuickStartCatalogPage.d.ts +3 -3
- package/dist/QuickStartCloseModal.d.ts +2 -2
- package/dist/QuickStartContainer.d.ts +2 -2
- package/dist/QuickStartController.d.ts +2 -2
- package/dist/QuickStartDrawer.d.ts +2 -2
- package/dist/QuickStartDrawerContent.d.ts +2 -2
- package/dist/QuickStartMarkdownView.d.ts +2 -2
- package/dist/QuickStartPanelContent.d.ts +2 -2
- package/dist/catalog/Catalog/QuickStartCatalogHeader.d.ts +2 -2
- package/dist/catalog/Catalog/QuickStartCatalogSection.d.ts +2 -2
- package/dist/catalog/Catalog/QuickStartCatalogToolbar.d.ts +2 -2
- package/dist/catalog/QuickStartCatalog.d.ts +2 -2
- package/dist/catalog/QuickStartTile.d.ts +2 -2
- package/dist/catalog/QuickStartTileDescription.d.ts +2 -2
- package/dist/catalog/QuickStartTileFooter.d.ts +2 -2
- package/dist/catalog/QuickStartTileFooterExternal.d.ts +2 -2
- package/dist/catalog/QuickStartTileHeader.d.ts +2 -2
- package/dist/catalog/Toolbar/QuickStartCatalogFilter.d.ts +2 -2
- package/dist/catalog/Toolbar/QuickStartCatalogFilterItems.d.ts +7 -7
- package/dist/controller/QuickStartConclusion.d.ts +2 -2
- package/dist/controller/QuickStartContent.d.ts +2 -2
- package/dist/controller/QuickStartFooter.d.ts +2 -2
- package/dist/controller/QuickStartIntroduction.d.ts +2 -2
- package/dist/controller/QuickStartTaskHeader.d.ts +2 -2
- package/dist/controller/QuickStartTaskHeaderList.d.ts +2 -2
- package/dist/controller/QuickStartTaskReview.d.ts +2 -2
- package/dist/controller/QuickStartTasks.d.ts +2 -2
- package/dist/index.es.js +299 -459
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +310 -472
- package/dist/index.js.map +1 -1
- package/dist/quickstarts-full.es.js +1693 -511
- package/dist/quickstarts-full.es.js.map +1 -1
- package/dist/utils/help-topic-context.d.ts +2 -2
- package/dist/utils/quick-start-context.d.ts +3 -3
- package/package.json +3 -4
- package/src/ConsoleInternal/components/markdown-view.tsx +20 -18
- package/src/ConsoleInternal/components/utils/camel-case-wrap.tsx +3 -3
- package/src/ConsoleInternal/components/utils/status-box.tsx +4 -4
- package/src/ConsoleShared/src/components/markdown-extensions/MarkdownCopyClipboard.tsx +8 -15
- package/src/ConsoleShared/src/components/markdown-extensions/__tests__/MarkdownCopyClipboard.spec.tsx +0 -1
- package/src/ConsoleShared/src/components/markdown-extensions/accordion-extension.tsx +2 -2
- package/src/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.tsx +4 -4
- package/src/ConsoleShared/src/components/markdown-extensions/admonition-extension.tsx +2 -2
- package/src/ConsoleShared/src/components/markdown-extensions/code-extension.tsx +2 -2
- package/src/ConsoleShared/src/components/markdown-extensions/inline-clipboard-extension.tsx +3 -3
- package/src/ConsoleShared/src/components/markdown-extensions/multiline-clipboard-extension.tsx +3 -3
- package/src/ConsoleShared/src/components/markdown-highlight-extension/MarkdownHighlightExtension.tsx +5 -5
- package/src/ConsoleShared/src/components/modal/Modal.tsx +3 -3
- package/src/ConsoleShared/src/components/popper/Portal.tsx +5 -5
- package/src/ConsoleShared/src/components/popper/SimplePopper.tsx +15 -15
- package/src/ConsoleShared/src/components/spotlight/InteractiveSpotlight.tsx +5 -5
- package/src/ConsoleShared/src/components/spotlight/Spotlight.tsx +3 -3
- package/src/ConsoleShared/src/components/spotlight/StaticSpotlight.tsx +3 -3
- package/src/ConsoleShared/src/components/status/GenericStatus.tsx +5 -5
- package/src/ConsoleShared/src/components/status/NotStartedIcon.tsx +0 -1
- package/src/ConsoleShared/src/components/status/PopoverStatus.tsx +4 -4
- package/src/ConsoleShared/src/components/status/Status.tsx +3 -11
- package/src/ConsoleShared/src/components/status/StatusIconAndText.tsx +6 -6
- package/src/ConsoleShared/src/components/status/icons.tsx +4 -8
- package/src/ConsoleShared/src/components/status/statuses.tsx +4 -5
- package/src/ConsoleShared/src/components/utils/FallbackImg.tsx +4 -4
- package/src/ConsoleShared/src/hooks/scroll.ts +4 -4
- package/src/ConsoleShared/src/hooks/useBoundingClientRect.ts +3 -3
- package/src/ConsoleShared/src/hooks/useForceRender.ts +2 -2
- package/src/ConsoleShared/src/hooks/useResizeObserver.ts +3 -6
- package/src/ConsoleShared/src/hooks/useScrollShadows.ts +4 -4
- package/src/ConsoleShared/src/utils/useCombineRefs.ts +4 -4
- package/src/HelpTopicDrawer.tsx +6 -6
- package/src/HelpTopicPanelContent.tsx +4 -4
- package/src/QuickStartCatalogPage.tsx +9 -9
- package/src/QuickStartCloseModal.tsx +3 -7
- package/src/QuickStartContainer.tsx +4 -4
- package/src/QuickStartController.tsx +11 -11
- package/src/QuickStartDrawer.tsx +6 -6
- package/src/QuickStartDrawerContent.tsx +3 -3
- package/src/QuickStartMarkdownView.tsx +3 -3
- package/src/QuickStartPanelContent.tsx +8 -8
- package/src/catalog/Catalog/QuickStartCatalogHeader.tsx +2 -2
- package/src/catalog/Catalog/QuickStartCatalogSection.tsx +2 -2
- package/src/catalog/Catalog/QuickStartCatalogToolbar.tsx +2 -2
- package/src/catalog/QuickStartCatalog.tsx +3 -3
- package/src/catalog/QuickStartTile.tsx +4 -4
- package/src/catalog/QuickStartTileDescription.tsx +4 -4
- package/src/catalog/QuickStartTileFooter.tsx +6 -6
- package/src/catalog/QuickStartTileFooterExternal.tsx +2 -5
- package/src/catalog/QuickStartTileHeader.tsx +2 -6
- package/src/catalog/Toolbar/QuickStartCatalogFilter.tsx +2 -2
- package/src/catalog/Toolbar/QuickStartCatalogFilterItems.tsx +16 -16
- package/src/catalog/__tests__/QuickStartCatalog.spec.tsx +0 -1
- package/src/catalog/__tests__/QuickStartTile.spec.tsx +0 -1
- package/src/catalog/__tests__/QuickStartTileDescription.spec.tsx +1 -2
- package/src/controller/QuickStartConclusion.tsx +3 -3
- package/src/controller/QuickStartContent.tsx +2 -2
- package/src/controller/QuickStartFooter.tsx +10 -11
- package/src/controller/QuickStartIntroduction.tsx +4 -4
- package/src/controller/QuickStartTaskHeader.tsx +5 -5
- package/src/controller/QuickStartTaskHeaderList.tsx +2 -2
- package/src/controller/QuickStartTaskReview.tsx +4 -4
- package/src/controller/QuickStartTasks.tsx +5 -5
- package/src/controller/__tests__/QuickStartConclusion.spec.tsx +3 -3
- package/src/controller/__tests__/QuickStartContent.spec.tsx +2 -2
- package/src/controller/__tests__/QuickStartTaskHeader.spec.tsx +2 -2
- package/src/controller/__tests__/QuickStartTaskReview.spec.tsx +2 -2
- package/src/utils/help-topic-context.tsx +7 -10
- package/src/utils/quick-start-context.tsx +11 -11
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Children, ComponentType, FC, ReactNode } from 'react';
|
|
2
2
|
import PopoverStatus from './PopoverStatus';
|
|
3
3
|
import StatusIconAndText from './StatusIconAndText';
|
|
4
4
|
import { StatusComponentProps } from './types';
|
|
5
5
|
|
|
6
|
-
const GenericStatus:
|
|
6
|
+
const GenericStatus: FC<GenericStatusProps> = (props) => {
|
|
7
7
|
const { Icon, children, popoverTitle, title, noTooltip, iconOnly, ...restProps } = props;
|
|
8
8
|
const renderIcon = iconOnly && !noTooltip ? <Icon title={title} /> : <Icon />;
|
|
9
9
|
const statusBody = (
|
|
@@ -15,7 +15,7 @@ const GenericStatus: React.FC<GenericStatusProps> = (props) => {
|
|
|
15
15
|
icon={renderIcon}
|
|
16
16
|
/>
|
|
17
17
|
);
|
|
18
|
-
return
|
|
18
|
+
return Children.toArray(children).length ? (
|
|
19
19
|
<PopoverStatus title={popoverTitle || title} {...restProps} statusBody={statusBody}>
|
|
20
20
|
{children}
|
|
21
21
|
</PopoverStatus>
|
|
@@ -25,8 +25,8 @@ const GenericStatus: React.FC<GenericStatusProps> = (props) => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
type GenericStatusProps = StatusComponentProps & {
|
|
28
|
-
Icon:
|
|
29
|
-
children?:
|
|
28
|
+
Icon: ComponentType<{ title?: string }>;
|
|
29
|
+
children?: ReactNode;
|
|
30
30
|
popoverTitle?: string;
|
|
31
31
|
noTooltip?: boolean;
|
|
32
32
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
2
|
import { Button, Popover, PopoverPosition } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
|
-
const PopoverStatus:
|
|
4
|
+
const PopoverStatus: FC<PopoverStatusProps> = ({
|
|
5
5
|
hideHeader,
|
|
6
6
|
children,
|
|
7
7
|
isVisible = null,
|
|
@@ -26,8 +26,8 @@ const PopoverStatus: React.FC<PopoverStatusProps> = ({
|
|
|
26
26
|
);
|
|
27
27
|
|
|
28
28
|
interface PopoverStatusProps {
|
|
29
|
-
children:
|
|
30
|
-
statusBody:
|
|
29
|
+
children: ReactNode;
|
|
30
|
+
statusBody: ReactNode;
|
|
31
31
|
onHide?: (event: MouseEvent | KeyboardEvent) => void;
|
|
32
32
|
onShow?: (event: MouseEvent | KeyboardEvent) => void;
|
|
33
33
|
title?: string;
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import SyncAltIcon from '@patternfly/react-icons/dist/js/icons/sync-alt-icon';
|
|
3
3
|
import { DASH } from '../../constants';
|
|
4
4
|
import { SuccessStatus } from './statuses';
|
|
5
5
|
import StatusIconAndText from './StatusIconAndText';
|
|
6
6
|
import { StatusComponentProps } from './types';
|
|
7
7
|
|
|
8
|
-
export const Status:
|
|
9
|
-
status,
|
|
10
|
-
title,
|
|
11
|
-
iconOnly,
|
|
12
|
-
noTooltip,
|
|
13
|
-
className,
|
|
14
|
-
}) => {
|
|
8
|
+
export const Status: FC<StatusProps> = ({ status, title, iconOnly, noTooltip, className }) => {
|
|
15
9
|
const statusProps = { title: title || status, iconOnly, noTooltip, className };
|
|
16
10
|
switch (status) {
|
|
17
11
|
case 'In Progress':
|
|
@@ -25,9 +19,7 @@ export const Status: React.FC<StatusProps> = ({
|
|
|
25
19
|
}
|
|
26
20
|
};
|
|
27
21
|
|
|
28
|
-
export const StatusIcon:
|
|
29
|
-
<Status status={status} iconOnly />
|
|
30
|
-
);
|
|
22
|
+
export const StatusIcon: FC<StatusIconProps> = ({ status }) => <Status status={status} iconOnly />;
|
|
31
23
|
|
|
32
24
|
interface StatusIconProps {
|
|
33
25
|
status: string;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { cloneElement, FC, ReactElement } from 'react';
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
3
|
import { CamelCaseWrap } from '@console/internal/components/utils';
|
|
4
4
|
import { DASH } from '../../constants';
|
|
5
5
|
import { StatusComponentProps } from './types';
|
|
6
6
|
|
|
7
7
|
type StatusIconAndTextProps = StatusComponentProps & {
|
|
8
|
-
icon?:
|
|
8
|
+
icon?: ReactElement<any>;
|
|
9
9
|
spin?: boolean;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
const StatusIconAndText:
|
|
12
|
+
const StatusIconAndText: FC<StatusIconAndTextProps> = ({
|
|
13
13
|
icon,
|
|
14
14
|
title,
|
|
15
15
|
spin,
|
|
@@ -27,13 +27,13 @@ const StatusIconAndText: React.FC<StatusIconAndTextProps> = ({
|
|
|
27
27
|
title={iconOnly && !noTooltip ? title : undefined}
|
|
28
28
|
>
|
|
29
29
|
{icon &&
|
|
30
|
-
|
|
30
|
+
cloneElement(icon, {
|
|
31
31
|
className: css(
|
|
32
32
|
spin && 'fa-spin',
|
|
33
|
-
icon.props.className,
|
|
33
|
+
(icon.props as any).className,
|
|
34
34
|
!iconOnly && 'pfext-icon-and-text__icon pfext-icon-flex-child',
|
|
35
35
|
),
|
|
36
|
-
})}
|
|
36
|
+
} as any)}
|
|
37
37
|
{!iconOnly && <CamelCaseWrap value={title} dataTest="status-text" />}
|
|
38
38
|
</span>
|
|
39
39
|
);
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import CheckCircleIcon from '@patternfly/react-icons/dist/js/icons/check-circle-icon';
|
|
3
3
|
import ExclamationCircleIcon from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
4
4
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
5
5
|
import { Icon } from '@patternfly/react-core';
|
|
6
6
|
|
|
7
|
-
export const GreenCheckCircleIcon:
|
|
7
|
+
export const GreenCheckCircleIcon: FC<ColoredIconProps> = ({ className, title, size }) => (
|
|
8
8
|
<Icon size={size} status="success">
|
|
9
9
|
<CheckCircleIcon data-test="success-icon" className={className} title={title} />
|
|
10
10
|
</Icon>
|
|
11
11
|
);
|
|
12
12
|
|
|
13
|
-
export const RedExclamationCircleIcon:
|
|
14
|
-
className,
|
|
15
|
-
title,
|
|
16
|
-
size,
|
|
17
|
-
}) => (
|
|
13
|
+
export const RedExclamationCircleIcon: FC<ColoredIconProps> = ({ className, title, size }) => (
|
|
18
14
|
<Icon size={size} status="danger">
|
|
19
15
|
<ExclamationCircleIcon className={className} title={title} />
|
|
20
16
|
</Icon>
|
|
21
17
|
);
|
|
22
18
|
|
|
23
|
-
export const BlueInfoCircleIcon:
|
|
19
|
+
export const BlueInfoCircleIcon: FC<ColoredIconProps> = ({ className, title }) => (
|
|
24
20
|
<Icon status="info">
|
|
25
21
|
<InfoCircleIcon className={className} title={title} />
|
|
26
22
|
</Icon>
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { FC } from 'react';
|
|
3
2
|
import GenericStatus from './GenericStatus';
|
|
4
3
|
import { BlueInfoCircleIcon, GreenCheckCircleIcon, RedExclamationCircleIcon } from './icons';
|
|
5
4
|
import { StatusComponentProps } from './types';
|
|
6
5
|
|
|
7
|
-
export const ErrorStatus:
|
|
6
|
+
export const ErrorStatus: FC<StatusComponentProps> = (props) => (
|
|
8
7
|
<GenericStatus {...props} Icon={RedExclamationCircleIcon} title={props.title || 'Error'} />
|
|
9
8
|
);
|
|
10
9
|
ErrorStatus.displayName = 'ErrorStatus';
|
|
11
10
|
|
|
12
|
-
export const InfoStatus:
|
|
11
|
+
export const InfoStatus: FC<StatusComponentProps> = (props) => (
|
|
13
12
|
<GenericStatus {...props} Icon={BlueInfoCircleIcon} title={props.title || 'Information'} />
|
|
14
13
|
);
|
|
15
14
|
InfoStatus.displayName = 'InfoStatus';
|
|
16
15
|
|
|
17
|
-
export const SuccessStatus:
|
|
16
|
+
export const SuccessStatus: FC<StatusComponentProps> = (props) => (
|
|
18
17
|
<GenericStatus {...props} Icon={GreenCheckCircleIcon} title={props.title || 'Healthy'} />
|
|
19
18
|
);
|
|
20
19
|
SuccessStatus.displayName = 'SuccessStatus';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, ReactNode, useState } from 'react';
|
|
2
2
|
|
|
3
3
|
interface FallbackImgProps {
|
|
4
4
|
src: string;
|
|
5
5
|
alt?: string;
|
|
6
6
|
className?: string;
|
|
7
|
-
fallback?:
|
|
7
|
+
fallback?: ReactNode;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
const FallbackImg:
|
|
11
|
-
const [isSrcValid, setIsSrcValid] =
|
|
10
|
+
const FallbackImg: FC<FallbackImgProps> = ({ src, alt, className, fallback }) => {
|
|
11
|
+
const [isSrcValid, setIsSrcValid] = useState<boolean>(true);
|
|
12
12
|
|
|
13
13
|
if (src && isSrcValid) {
|
|
14
14
|
return <img className={className} src={src} alt={alt} onError={() => setIsSrcValid(false)} />;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useCallback, useRef, useState } from 'react';
|
|
2
2
|
|
|
3
3
|
export enum ScrollDirection {
|
|
4
4
|
scrollingUp = 'scrolling-up',
|
|
@@ -27,9 +27,9 @@ export const getScrollDirection = (
|
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
export const useScrollDirection = (): [ScrollDirection, (event) => void] => {
|
|
30
|
-
const scrollPosition =
|
|
31
|
-
const [scrollDirection, setScrollDirection] =
|
|
32
|
-
const handleScroll =
|
|
30
|
+
const scrollPosition = useRef<number>(null);
|
|
31
|
+
const [scrollDirection, setScrollDirection] = useState<ScrollDirection>(null);
|
|
32
|
+
const handleScroll = useCallback(
|
|
33
33
|
(event) => {
|
|
34
34
|
const { scrollHeight, scrollTop, clientHeight } = event.target;
|
|
35
35
|
if (scrollPosition.current !== null) {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useCallback, useState } from 'react';
|
|
2
2
|
import { useResizeObserver } from './useResizeObserver';
|
|
3
3
|
|
|
4
4
|
type BoundingClientRect = ClientRect | null;
|
|
5
5
|
|
|
6
6
|
export const useBoundingClientRect = (targetElement: HTMLElement | null): BoundingClientRect => {
|
|
7
|
-
const [clientRect, setClientRect] =
|
|
7
|
+
const [clientRect, setClientRect] = useState<BoundingClientRect>(() =>
|
|
8
8
|
targetElement ? targetElement.getBoundingClientRect() : null,
|
|
9
9
|
);
|
|
10
10
|
|
|
11
|
-
const observerCallback =
|
|
11
|
+
const observerCallback = useCallback(() => {
|
|
12
12
|
setClientRect(targetElement ? targetElement.getBoundingClientRect() : null);
|
|
13
13
|
}, [targetElement]);
|
|
14
14
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useReducer } from 'react';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* React hook that forces component render.
|
|
5
5
|
*/
|
|
6
|
-
export const useForceRender = () =>
|
|
6
|
+
export const useForceRender = () => useReducer((s: boolean) => !s, false)[1] as VoidFunction;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useEffect, useMemo } from 'react';
|
|
2
2
|
|
|
3
3
|
export const useResizeObserver = (
|
|
4
4
|
callback: ResizeObserverCallback,
|
|
5
5
|
targetElement?: HTMLElement | null,
|
|
6
6
|
observerOptions: ResizeObserverOptions = undefined,
|
|
7
7
|
): void => {
|
|
8
|
-
const element =
|
|
9
|
-
|
|
10
|
-
[targetElement],
|
|
11
|
-
);
|
|
12
|
-
React.useEffect(() => {
|
|
8
|
+
const element = useMemo(() => targetElement ?? document.querySelector('body'), [targetElement]);
|
|
9
|
+
useEffect(() => {
|
|
13
10
|
const observer = new ResizeObserver(callback);
|
|
14
11
|
observer.observe(element, observerOptions);
|
|
15
12
|
return () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
2
2
|
import { useResizeObserver } from './useResizeObserver';
|
|
3
3
|
|
|
4
4
|
export enum Shadows {
|
|
@@ -9,8 +9,8 @@ export enum Shadows {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export const useScrollShadows = (node: HTMLElement): Shadows => {
|
|
12
|
-
const [shadows, setShadows] =
|
|
13
|
-
const computeShadows =
|
|
12
|
+
const [shadows, setShadows] = useState(Shadows.none);
|
|
13
|
+
const computeShadows = useCallback(() => {
|
|
14
14
|
if (node) {
|
|
15
15
|
const { scrollTop, clientHeight, scrollHeight } = node;
|
|
16
16
|
const top = scrollTop !== 0;
|
|
@@ -28,7 +28,7 @@ export const useScrollShadows = (node: HTMLElement): Shadows => {
|
|
|
28
28
|
}, [node]);
|
|
29
29
|
// recompute when the scroll container changes in size
|
|
30
30
|
useResizeObserver(computeShadows, node);
|
|
31
|
-
|
|
31
|
+
useEffect(() => {
|
|
32
32
|
if (node) {
|
|
33
33
|
// compute initial shadows
|
|
34
34
|
computeShadows();
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { MutableRefObject, Ref, useCallback } from 'react';
|
|
2
2
|
|
|
3
|
-
export const useCombineRefs = <RefType>(...refs: (
|
|
4
|
-
|
|
3
|
+
export const useCombineRefs = <RefType>(...refs: (Ref<RefType> | undefined)[]) =>
|
|
4
|
+
useCallback(
|
|
5
5
|
(element: RefType | null): void =>
|
|
6
6
|
refs.forEach((ref) => {
|
|
7
7
|
if (ref) {
|
|
8
8
|
if (typeof ref === 'function') {
|
|
9
9
|
ref(element);
|
|
10
10
|
} else {
|
|
11
|
-
(ref as
|
|
11
|
+
(ref as MutableRefObject<any>).current = element;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}),
|
package/src/HelpTopicDrawer.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext, useEffect } from 'react';
|
|
2
2
|
import { Drawer, DrawerContent, DrawerContentBody } from '@patternfly/react-core';
|
|
3
3
|
import HelpTopicPanelContent from './HelpTopicPanelContent';
|
|
4
4
|
import {
|
|
@@ -33,7 +33,7 @@ export interface HelpTopicContainerProps extends React.HTMLProps<HTMLDivElement>
|
|
|
33
33
|
children?: React.ReactNode;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
export const HelpTopicContainer:
|
|
36
|
+
export const HelpTopicContainer: FC<HelpTopicContainerProps> = ({
|
|
37
37
|
helpTopics,
|
|
38
38
|
children,
|
|
39
39
|
resourceBundle,
|
|
@@ -54,13 +54,13 @@ export const HelpTopicContainer: React.FC<HelpTopicContainerProps> = ({
|
|
|
54
54
|
...contextProps,
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
useEffect(() => {
|
|
58
58
|
if (loading !== valuesForHelpTopicContext.loading) {
|
|
59
59
|
valuesForHelpTopicContext.setLoading(loading);
|
|
60
60
|
}
|
|
61
61
|
}, [loading, valuesForHelpTopicContext]);
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
useEffect(() => {
|
|
64
64
|
if (
|
|
65
65
|
helpTopics &&
|
|
66
66
|
JSON.stringify(helpTopics) !== JSON.stringify(valuesForHelpTopicContext.helpTopics)
|
|
@@ -81,9 +81,9 @@ export interface HelpTopicDrawerProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
81
81
|
children?: React.ReactNode;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
export const HelpTopicDrawer:
|
|
84
|
+
export const HelpTopicDrawer: FC<HelpTopicDrawerProps> = ({ children, ...props }) => {
|
|
85
85
|
const { activeHelpTopic, filteredHelpTopics, setActiveHelpTopicByName } =
|
|
86
|
-
|
|
86
|
+
useContext<HelpTopicContextValues>(HelpTopicContext);
|
|
87
87
|
|
|
88
88
|
const onClose = () => {
|
|
89
89
|
setActiveHelpTopicByName('');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext, useState } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Button,
|
|
4
4
|
Divider,
|
|
@@ -30,16 +30,16 @@ interface HelpTopicPanelContentProps {
|
|
|
30
30
|
onClose: () => void;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
const HelpTopicPanelContent:
|
|
33
|
+
const HelpTopicPanelContent: FC<HelpTopicPanelContentProps> = ({
|
|
34
34
|
activeHelpTopic = null,
|
|
35
35
|
filteredHelpTopics = [],
|
|
36
36
|
isResizable = true,
|
|
37
37
|
onClose,
|
|
38
38
|
...props
|
|
39
39
|
}) => {
|
|
40
|
-
const { setActiveHelpTopicByName } =
|
|
40
|
+
const { setActiveHelpTopicByName } = useContext<HelpTopicContextValues>(HelpTopicContext);
|
|
41
41
|
|
|
42
|
-
const [isHelpTopicMenuOpen, setIsHelpTopicMenuOpen] =
|
|
42
|
+
const [isHelpTopicMenuOpen, setIsHelpTopicMenuOpen] = useState(false);
|
|
43
43
|
|
|
44
44
|
const toggleHelpTopicMenu = () => {
|
|
45
45
|
setIsHelpTopicMenuOpen(!isHelpTopicMenuOpen);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useCallback, useContext, useEffect, useState } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Button,
|
|
4
4
|
Content,
|
|
@@ -28,11 +28,11 @@ export interface QuickStartCatalogPageProps {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export const QuickStartCatalogEmptyState = ({ clearFilters }) => {
|
|
31
|
-
const { getResource } =
|
|
31
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
32
32
|
return (
|
|
33
33
|
<EmptyState
|
|
34
34
|
headingLevel="h4"
|
|
35
|
-
icon={SearchIcon}
|
|
35
|
+
icon={SearchIcon as any}
|
|
36
36
|
titleText={<>{getResource('No results found')}</>}
|
|
37
37
|
>
|
|
38
38
|
<EmptyStateBody>
|
|
@@ -52,7 +52,7 @@ export const QuickStartCatalogEmptyState = ({ clearFilters }) => {
|
|
|
52
52
|
);
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
export const QuickStartCatalogPage:
|
|
55
|
+
export const QuickStartCatalogPage: FC<QuickStartCatalogPageProps> = ({
|
|
56
56
|
quickStarts,
|
|
57
57
|
showFilter,
|
|
58
58
|
sortFnc = (q1, q2) => q1.spec.displayName.localeCompare(q2.spec.displayName),
|
|
@@ -60,7 +60,7 @@ export const QuickStartCatalogPage: React.FC<QuickStartCatalogPageProps> = ({
|
|
|
60
60
|
hint,
|
|
61
61
|
showTitle = true,
|
|
62
62
|
}) => {
|
|
63
|
-
const sortFncCallback =
|
|
63
|
+
const sortFncCallback = useCallback(sortFnc, [sortFnc]);
|
|
64
64
|
const {
|
|
65
65
|
allQuickStarts = [],
|
|
66
66
|
setAllQuickStarts,
|
|
@@ -69,9 +69,9 @@ export const QuickStartCatalogPage: React.FC<QuickStartCatalogPageProps> = ({
|
|
|
69
69
|
filter,
|
|
70
70
|
setFilter,
|
|
71
71
|
loading,
|
|
72
|
-
} =
|
|
72
|
+
} = useContext<QuickStartContextValues>(QuickStartContext);
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
useEffect(() => {
|
|
75
75
|
// passed through prop, not context
|
|
76
76
|
if (quickStarts && JSON.stringify(quickStarts) !== JSON.stringify(allQuickStarts)) {
|
|
77
77
|
setAllQuickStarts(quickStarts);
|
|
@@ -87,8 +87,8 @@ export const QuickStartCatalogPage: React.FC<QuickStartCatalogPageProps> = ({
|
|
|
87
87
|
).sort(sortFncCallback)
|
|
88
88
|
: allQuickStarts;
|
|
89
89
|
|
|
90
|
-
const [filteredQuickStarts, setFilteredQuickStarts] =
|
|
91
|
-
|
|
90
|
+
const [filteredQuickStarts, setFilteredQuickStarts] = useState(initialFilteredQuickStarts);
|
|
91
|
+
useEffect(() => {
|
|
92
92
|
const filteredQs = showFilter
|
|
93
93
|
? filterQuickStarts(
|
|
94
94
|
allQuickStarts,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext } from 'react';
|
|
2
2
|
import { Button, Flex, FlexItem } from '@patternfly/react-core';
|
|
3
3
|
import { ModalVariant } from '@patternfly/react-core/deprecated';
|
|
4
4
|
import { Modal } from '@console/shared';
|
|
@@ -10,12 +10,8 @@ interface QuickStartCloseModalProps {
|
|
|
10
10
|
onCancel: () => void;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
const QuickStartCloseModal:
|
|
14
|
-
|
|
15
|
-
onConfirm,
|
|
16
|
-
onCancel,
|
|
17
|
-
}) => {
|
|
18
|
-
const { getResource } = React.useContext<QuickStartContextValues>(QuickStartContext);
|
|
13
|
+
const QuickStartCloseModal: FC<QuickStartCloseModalProps> = ({ isOpen, onConfirm, onCancel }) => {
|
|
14
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
19
15
|
return (
|
|
20
16
|
<Modal
|
|
21
17
|
isOpen={isOpen}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useEffect } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
QuickStartContext,
|
|
4
4
|
QuickStartContextValues,
|
|
@@ -58,7 +58,7 @@ export interface QuickStartContainerProps extends React.HTMLProps<HTMLDivElement
|
|
|
58
58
|
isManagedDrawer?: boolean;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
export const QuickStartContainer:
|
|
61
|
+
export const QuickStartContainer: FC<QuickStartContainerProps> = ({
|
|
62
62
|
quickStarts,
|
|
63
63
|
children,
|
|
64
64
|
activeQuickStartID,
|
|
@@ -105,7 +105,7 @@ export const QuickStartContainer: React.FC<QuickStartContainerProps> = ({
|
|
|
105
105
|
...contextProps,
|
|
106
106
|
});
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
useEffect(() => {
|
|
109
109
|
if (
|
|
110
110
|
quickStarts &&
|
|
111
111
|
JSON.stringify(quickStarts) !== JSON.stringify(valuesForQuickstartContext.allQuickStarts)
|
|
@@ -114,7 +114,7 @@ export const QuickStartContainer: React.FC<QuickStartContainerProps> = ({
|
|
|
114
114
|
}
|
|
115
115
|
}, [quickStarts, valuesForQuickstartContext]);
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
useEffect(() => {
|
|
118
118
|
if (loading !== valuesForQuickstartContext.loading) {
|
|
119
119
|
valuesForQuickstartContext.setLoading(loading);
|
|
120
120
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useCallback, useContext, useEffect } from 'react';
|
|
2
2
|
import QuickStartContent from './controller/QuickStartContent';
|
|
3
3
|
import QuickStartFooter from './controller/QuickStartFooter';
|
|
4
4
|
import {
|
|
@@ -19,7 +19,7 @@ interface QuickStartControllerProps {
|
|
|
19
19
|
contentRef?: React.Ref<HTMLDivElement>;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export const QuickStartController:
|
|
22
|
+
export const QuickStartController: FC<QuickStartControllerProps> = ({
|
|
23
23
|
quickStart,
|
|
24
24
|
nextQuickStarts,
|
|
25
25
|
contentRef,
|
|
@@ -40,8 +40,8 @@ export const QuickStartController: React.FC<QuickStartControllerProps> = ({
|
|
|
40
40
|
setQuickStartTaskStatus,
|
|
41
41
|
nextStep,
|
|
42
42
|
previousStep,
|
|
43
|
-
} =
|
|
44
|
-
|
|
43
|
+
} = useContext<QuickStartContextValues>(QuickStartContext);
|
|
44
|
+
useEffect(() => {
|
|
45
45
|
// If activeQuickStartID was changed through prop from QuickStartContainer, need to init the state if it does not exist yet
|
|
46
46
|
if (activeQuickStartID && !allQuickStartStates[activeQuickStartID]) {
|
|
47
47
|
setAllQuickStartStates({
|
|
@@ -57,17 +57,17 @@ export const QuickStartController: React.FC<QuickStartControllerProps> = ({
|
|
|
57
57
|
(task, index) => activeQuickStartState[`taskStatus${index}`],
|
|
58
58
|
) as QuickStartTaskStatus[];
|
|
59
59
|
|
|
60
|
-
const handleQuickStartChange =
|
|
60
|
+
const handleQuickStartChange = useCallback(
|
|
61
61
|
(quickStartId: string) => setActiveQuickStart(quickStartId),
|
|
62
62
|
[setActiveQuickStart],
|
|
63
63
|
);
|
|
64
64
|
|
|
65
|
-
const handleTaskStatusChange =
|
|
65
|
+
const handleTaskStatusChange = useCallback(
|
|
66
66
|
(newTaskStatus: QuickStartTaskStatus) => setQuickStartTaskStatus(newTaskStatus),
|
|
67
67
|
[setQuickStartTaskStatus],
|
|
68
68
|
);
|
|
69
69
|
|
|
70
|
-
const getQuickStartActiveTask =
|
|
70
|
+
const getQuickStartActiveTask = useCallback(() => {
|
|
71
71
|
let activeTaskNumber = 0;
|
|
72
72
|
while (
|
|
73
73
|
activeTaskNumber !== totalTasks &&
|
|
@@ -78,12 +78,12 @@ export const QuickStartController: React.FC<QuickStartControllerProps> = ({
|
|
|
78
78
|
return activeTaskNumber;
|
|
79
79
|
}, [totalTasks, activeQuickStartState]);
|
|
80
80
|
|
|
81
|
-
const handleQuickStartContinue =
|
|
81
|
+
const handleQuickStartContinue = useCallback(() => {
|
|
82
82
|
const activeTaskNumber = getQuickStartActiveTask();
|
|
83
83
|
setQuickStartTaskNumber(name, activeTaskNumber);
|
|
84
84
|
}, [getQuickStartActiveTask, setQuickStartTaskNumber, name]);
|
|
85
85
|
|
|
86
|
-
const handleNext =
|
|
86
|
+
const handleNext = useCallback(() => {
|
|
87
87
|
if (status === QuickStartStatus.COMPLETE && taskNumber === totalTasks) {
|
|
88
88
|
return handleQuickStartChange('');
|
|
89
89
|
}
|
|
@@ -95,9 +95,9 @@ export const QuickStartController: React.FC<QuickStartControllerProps> = ({
|
|
|
95
95
|
return nextStep(totalTasks);
|
|
96
96
|
}, [handleQuickStartChange, nextStep, status, taskNumber, totalTasks, handleQuickStartContinue]);
|
|
97
97
|
|
|
98
|
-
const handleBack =
|
|
98
|
+
const handleBack = useCallback(() => previousStep(), [previousStep]);
|
|
99
99
|
|
|
100
|
-
const handleTaskSelect =
|
|
100
|
+
const handleTaskSelect = useCallback(
|
|
101
101
|
(selectedTaskNumber: number) => {
|
|
102
102
|
setQuickStartTaskNumber(name, selectedTaskNumber);
|
|
103
103
|
},
|
package/src/QuickStartDrawer.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext, useEffect, useState } from 'react';
|
|
2
2
|
import { Drawer, DrawerContent, DrawerContentBody } from '@patternfly/react-core';
|
|
3
3
|
import QuickStartCloseModal from './QuickStartCloseModal';
|
|
4
4
|
import QuickStartDrawerContent from './QuickStartDrawerContent';
|
|
@@ -19,7 +19,7 @@ export interface QuickStartDrawerProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
19
19
|
onCloseNotInProgress?: any;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export const QuickStartDrawer:
|
|
22
|
+
export const QuickStartDrawer: FC<QuickStartDrawerProps> = ({
|
|
23
23
|
quickStarts = [],
|
|
24
24
|
children,
|
|
25
25
|
appendTo,
|
|
@@ -34,9 +34,9 @@ export const QuickStartDrawer: React.FC<QuickStartDrawerProps> = ({
|
|
|
34
34
|
allQuickStarts = [],
|
|
35
35
|
allQuickStartStates,
|
|
36
36
|
setAllQuickStartStates,
|
|
37
|
-
} =
|
|
37
|
+
} = useContext<QuickStartContextValues>(QuickStartContext);
|
|
38
38
|
const combinedQuickStarts = allQuickStarts.concat(quickStarts);
|
|
39
|
-
|
|
39
|
+
useEffect(() => {
|
|
40
40
|
const params = new URLSearchParams(window.location.search);
|
|
41
41
|
// if there is a quick start param, but the quick start is not active, set it
|
|
42
42
|
// this can happen if a new browser session is opened or an incognito window for example
|
|
@@ -50,7 +50,7 @@ export const QuickStartDrawer: React.FC<QuickStartDrawerProps> = ({
|
|
|
50
50
|
}
|
|
51
51
|
}, [activeQuickStartID, combinedQuickStarts, setActiveQuickStart]);
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
useEffect(() => {
|
|
54
54
|
// If activeQuickStartID was changed through prop from QuickStartContainer, need to init the state if it does not exist yet
|
|
55
55
|
if (activeQuickStartID && !allQuickStartStates[activeQuickStartID]) {
|
|
56
56
|
setAllQuickStartStates({
|
|
@@ -60,7 +60,7 @@ export const QuickStartDrawer: React.FC<QuickStartDrawerProps> = ({
|
|
|
60
60
|
}
|
|
61
61
|
}, [activeQuickStartID, allQuickStartStates, setAllQuickStartStates]);
|
|
62
62
|
|
|
63
|
-
const [modalOpen, setModalOpen] =
|
|
63
|
+
const [modalOpen, setModalOpen] = useState<boolean>(false);
|
|
64
64
|
const onClose = () => setActiveQuickStart('');
|
|
65
65
|
const handleClose = (activeQuickStartStatus: string | number) => {
|
|
66
66
|
if (activeQuickStartStatus === QuickStartStatus.IN_PROGRESS) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext } from 'react';
|
|
2
2
|
import QuickStartPanelContent from './QuickStartPanelContent';
|
|
3
3
|
import { QuickStartContext, QuickStartContextValues } from './utils/quick-start-context';
|
|
4
4
|
import { QuickStart } from './utils/quick-start-types';
|
|
@@ -12,7 +12,7 @@ export interface QuickStartDrawerContentProps extends React.HTMLProps<HTMLDivEle
|
|
|
12
12
|
handleDrawerClose?: (quickStartStatus: string | number) => void;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export const QuickStartDrawerContent:
|
|
15
|
+
export const QuickStartDrawerContent: FC<QuickStartDrawerContentProps> = ({
|
|
16
16
|
quickStarts = [],
|
|
17
17
|
appendTo,
|
|
18
18
|
fullWidth,
|
|
@@ -23,7 +23,7 @@ export const QuickStartDrawerContent: React.FC<QuickStartDrawerContentProps> = (
|
|
|
23
23
|
activeQuickStartID,
|
|
24
24
|
allQuickStarts = [],
|
|
25
25
|
activeQuickStartState,
|
|
26
|
-
} =
|
|
26
|
+
} = useContext<QuickStartContextValues>(QuickStartContext);
|
|
27
27
|
const combinedQuickStarts = allQuickStarts.concat(quickStarts);
|
|
28
28
|
|
|
29
29
|
const handleClose = () => {
|