@patternfly/quickstarts 6.2.2 → 6.3.0-prerelease.10
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-extension.d.ts +1 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.d.ts +2 -2
- package/dist/ConsoleShared/src/components/markdown-extensions/admonition-extension.d.ts +1 -1
- 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 +489 -561
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +500 -574
- package/dist/index.js.map +1 -1
- package/dist/quickstarts-base.css +4 -4
- package/dist/quickstarts-full.es.js +1963 -693
- package/dist/quickstarts-full.es.js.map +1 -1
- package/dist/quickstarts.css +4 -4
- package/dist/quickstarts.min.css +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 +7 -7
- package/src/ConsoleInternal/components/markdown-view.tsx +112 -22
- 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/__tests__/accordion-extension.spec.tsx +105 -0
- package/src/ConsoleShared/src/components/markdown-extensions/__tests__/admonition-extension.spec.tsx +121 -0
- package/src/ConsoleShared/src/components/markdown-extensions/accordion-extension.tsx +22 -15
- package/src/ConsoleShared/src/components/markdown-extensions/accordion-render-extension.tsx +23 -9
- package/src/ConsoleShared/src/components/markdown-extensions/admonition-extension.tsx +19 -8
- 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 +6 -4
- 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 +17 -20
- 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 +5 -5
- 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,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { CSSProperties, FC, useContext, useEffect, useRef, useState } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
DrawerActions,
|
|
4
4
|
DrawerCloseButton,
|
|
@@ -35,14 +35,14 @@ const getElement = (appendTo: HTMLElement | (() => HTMLElement)) => {
|
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
const useScrollTopOnTaskNumberChange = (node: HTMLElement, taskNumber: number): void => {
|
|
38
|
-
|
|
38
|
+
useEffect(() => {
|
|
39
39
|
if (node) {
|
|
40
40
|
node.scrollTo({ top: 0, behavior: 'smooth' });
|
|
41
41
|
}
|
|
42
42
|
}, [taskNumber, node]);
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
const QuickStartPanelContent:
|
|
45
|
+
const QuickStartPanelContent: FC<QuickStartPanelContentProps> = ({
|
|
46
46
|
quickStarts = [],
|
|
47
47
|
handleClose,
|
|
48
48
|
activeQuickStartID,
|
|
@@ -52,10 +52,10 @@ const QuickStartPanelContent: React.FC<QuickStartPanelContentProps> = ({
|
|
|
52
52
|
footerClass,
|
|
53
53
|
...props
|
|
54
54
|
}) => {
|
|
55
|
-
const titleRef =
|
|
55
|
+
const titleRef = useRef(null);
|
|
56
56
|
const { getResource, activeQuickStartState, focusOnQuickStart } =
|
|
57
|
-
|
|
58
|
-
const [contentRef, setContentRef] =
|
|
57
|
+
useContext<QuickStartContextValues>(QuickStartContext);
|
|
58
|
+
const [contentRef, setContentRef] = useState<HTMLDivElement>();
|
|
59
59
|
const quickStart = quickStarts.find((qs) => qs.metadata.name === activeQuickStartID);
|
|
60
60
|
const taskNumber = activeQuickStartState?.taskNumber;
|
|
61
61
|
useScrollTopOnTaskNumberChange(contentRef, taskNumber as number);
|
|
@@ -74,7 +74,7 @@ const QuickStartPanelContent: React.FC<QuickStartPanelContentProps> = ({
|
|
|
74
74
|
return Number.parseInt(taskNumber as string) + 1;
|
|
75
75
|
};
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
useEffect(() => {
|
|
78
78
|
if (focusOnQuickStart && quickStart) {
|
|
79
79
|
titleRef.current.focus();
|
|
80
80
|
}
|
|
@@ -86,7 +86,7 @@ const QuickStartPanelContent: React.FC<QuickStartPanelContentProps> = ({
|
|
|
86
86
|
data-testid={`qs-drawer-${camelize(quickStart.spec.displayName)}`}
|
|
87
87
|
data-qs={`qs-step-${getStep()}`}
|
|
88
88
|
data-test="quickstart drawer"
|
|
89
|
-
style={{ '--pf-v6-c-drawer__panel--PaddingBlockStart': '0' } as
|
|
89
|
+
style={{ '--pf-v6-c-drawer__panel--PaddingBlockStart': '0' } as CSSProperties}
|
|
90
90
|
{...props}
|
|
91
91
|
>
|
|
92
92
|
<div className="pfext-quick-start-panel-content">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
2
|
import { Title } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
4
|
export interface QuickStartCatalogHeaderProps {
|
|
@@ -6,7 +6,7 @@ export interface QuickStartCatalogHeaderProps {
|
|
|
6
6
|
hint?: string;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export const QuickStartCatalogHeader:
|
|
9
|
+
export const QuickStartCatalogHeader: FunctionComponent<QuickStartCatalogHeaderProps> = ({
|
|
10
10
|
title,
|
|
11
11
|
hint,
|
|
12
12
|
}) => (
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
|
|
3
3
|
export interface QuickStartCatalogSectionProps {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
export const QuickStartCatalogSection:
|
|
7
|
+
export const QuickStartCatalogSection: FC<QuickStartCatalogSectionProps> = ({ children }) => (
|
|
8
8
|
<div>{children}</div>
|
|
9
9
|
);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import { Toolbar } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
4
|
export interface QuickStartCatalogToolbarProps {
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export const QuickStartCatalogToolbar:
|
|
8
|
+
export const QuickStartCatalogToolbar: FC<QuickStartCatalogToolbarProps> = ({ children }) => (
|
|
9
9
|
<Toolbar>{children}</Toolbar>
|
|
10
10
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FunctionComponent, useContext } from 'react';
|
|
2
2
|
import { Gallery } from '@patternfly/react-core';
|
|
3
3
|
import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start-context';
|
|
4
4
|
import { QuickStart } from '../utils/quick-start-types';
|
|
@@ -9,9 +9,9 @@ interface QuickStartCatalogProps {
|
|
|
9
9
|
quickStarts: QuickStart[];
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
const QuickStartCatalog:
|
|
12
|
+
const QuickStartCatalog: FunctionComponent<QuickStartCatalogProps> = ({ quickStarts }) => {
|
|
13
13
|
const { activeQuickStartID, allQuickStartStates } =
|
|
14
|
-
|
|
14
|
+
useContext<QuickStartContextValues>(QuickStartContext);
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
17
|
<div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext, useMemo } from 'react';
|
|
2
2
|
import RocketIcon from '@patternfly/react-icons/dist/js/icons/rocket-icon';
|
|
3
3
|
import { FallbackImg } from '@console/shared';
|
|
4
4
|
import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start-context';
|
|
@@ -50,7 +50,7 @@ export interface QuickStartTileProps {
|
|
|
50
50
|
action?: QuickstartAction;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
const QuickStartTile:
|
|
53
|
+
const QuickStartTile: FC<QuickStartTileProps> = ({
|
|
54
54
|
quickStart,
|
|
55
55
|
status,
|
|
56
56
|
isActive,
|
|
@@ -63,7 +63,7 @@ const QuickStartTile: React.FC<QuickStartTileProps> = ({
|
|
|
63
63
|
} = quickStart;
|
|
64
64
|
|
|
65
65
|
const { setActiveQuickStart, footer, getResource } =
|
|
66
|
-
|
|
66
|
+
useContext<QuickStartContextValues>(QuickStartContext);
|
|
67
67
|
|
|
68
68
|
const statusColorMap = {
|
|
69
69
|
[QuickStartStatus.COMPLETE]: 'green',
|
|
@@ -102,7 +102,7 @@ const QuickStartTile: React.FC<QuickStartTileProps> = ({
|
|
|
102
102
|
onClick();
|
|
103
103
|
};
|
|
104
104
|
|
|
105
|
-
const footerComponent =
|
|
105
|
+
const footerComponent = useMemo(() => {
|
|
106
106
|
if (footer && footer.show === false) {
|
|
107
107
|
return null;
|
|
108
108
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext, useRef } from 'react';
|
|
2
2
|
import { Button, Flex, Popover } from '@patternfly/react-core';
|
|
3
3
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
4
4
|
import QuickStartMarkdownView from '../QuickStartMarkdownView';
|
|
@@ -8,13 +8,13 @@ interface QuickStartTileDescriptionProps {
|
|
|
8
8
|
description: string;
|
|
9
9
|
prerequisites?: string[];
|
|
10
10
|
}
|
|
11
|
-
const QuickStartTileDescription:
|
|
11
|
+
const QuickStartTileDescription: FC<QuickStartTileDescriptionProps> = ({
|
|
12
12
|
description,
|
|
13
13
|
prerequisites,
|
|
14
14
|
}) => {
|
|
15
|
-
const { getResource } =
|
|
15
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
16
16
|
const prereqs = prerequisites?.filter((p) => p);
|
|
17
|
-
const buttonRef =
|
|
17
|
+
const buttonRef = useRef<HTMLButtonElement>(null);
|
|
18
18
|
|
|
19
19
|
return (
|
|
20
20
|
<>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useCallback, useContext } from 'react';
|
|
2
2
|
import { Button, Flex, FlexItem } from '@patternfly/react-core';
|
|
3
3
|
import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start-context';
|
|
4
4
|
import { QuickStartStatus } from '../utils/quick-start-types';
|
|
@@ -12,21 +12,21 @@ interface QuickStartTileFooterProps {
|
|
|
12
12
|
) => void;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
const QuickStartTileFooter:
|
|
15
|
+
const QuickStartTileFooter: FC<QuickStartTileFooterProps> = ({
|
|
16
16
|
quickStartId,
|
|
17
17
|
status,
|
|
18
18
|
totalTasks,
|
|
19
19
|
onClickContinue,
|
|
20
20
|
}) => {
|
|
21
|
-
const { getResource } =
|
|
21
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
22
22
|
const { activeQuickStartID, startQuickStart, restartQuickStart } =
|
|
23
|
-
|
|
23
|
+
useContext<QuickStartContextValues>(QuickStartContext);
|
|
24
24
|
|
|
25
|
-
const start =
|
|
25
|
+
const start = useCallback(() => {
|
|
26
26
|
startQuickStart(quickStartId, totalTasks);
|
|
27
27
|
}, [quickStartId, startQuickStart, totalTasks]);
|
|
28
28
|
|
|
29
|
-
const restart =
|
|
29
|
+
const restart = useCallback(() => {
|
|
30
30
|
restartQuickStart(quickStartId, totalTasks);
|
|
31
31
|
}, [quickStartId, restartQuickStart, totalTasks]);
|
|
32
32
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import { Button, Flex, FlexItem } from '@patternfly/react-core';
|
|
3
3
|
import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
|
|
4
4
|
import { QuickStartExternal } from '../utils/quick-start-types';
|
|
@@ -8,10 +8,7 @@ interface QuickStartTileFooterProps {
|
|
|
8
8
|
quickStartId?: string;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const QuickStartTileFooterExternal:
|
|
12
|
-
link,
|
|
13
|
-
quickStartId,
|
|
14
|
-
}) => {
|
|
11
|
+
const QuickStartTileFooterExternal: FC<QuickStartTileFooterProps> = ({ link, quickStartId }) => {
|
|
15
12
|
const { href, text } = link;
|
|
16
13
|
|
|
17
14
|
return (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import { Button, Flex } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
4
|
interface QuickStartTileHeaderProps {
|
|
@@ -7,11 +7,7 @@ interface QuickStartTileHeaderProps {
|
|
|
7
7
|
onSelect: (e: React.FormEvent<HTMLInputElement> | React.MouseEvent<Element, MouseEvent>) => void;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
const QuickStartTileHeader:
|
|
11
|
-
name,
|
|
12
|
-
quickStartId,
|
|
13
|
-
onSelect,
|
|
14
|
-
}) => (
|
|
10
|
+
const QuickStartTileHeader: FC<QuickStartTileHeaderProps> = ({ name, quickStartId, onSelect }) => (
|
|
15
11
|
<Flex flexWrap={{ default: 'nowrap' }}>
|
|
16
12
|
<Button data-test="title" id={quickStartId} variant="link" isInline onClick={onSelect}>
|
|
17
13
|
{name}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import { Toolbar, ToolbarContent, ToolbarProps } from '@patternfly/react-core';
|
|
3
3
|
import {
|
|
4
4
|
QuickStartCatalogFilterCountWrapper,
|
|
@@ -12,7 +12,7 @@ interface QuickStartCatalogFilterProps extends Omit<ToolbarProps, 'ref'> {
|
|
|
12
12
|
onStatusChange: any;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
const QuickStartCatalogFilter:
|
|
15
|
+
const QuickStartCatalogFilter: FC<QuickStartCatalogFilterProps> = ({
|
|
16
16
|
quickStartsCount,
|
|
17
17
|
onSearchInputChange = () => {},
|
|
18
18
|
onStatusChange = () => {},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, Ref, useCallback, useContext, useEffect, useState } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Badge,
|
|
4
4
|
MenuToggle,
|
|
@@ -15,7 +15,7 @@ import { QUICKSTART_SEARCH_FILTER_KEY, QUICKSTART_STATUS_FILTER_KEY } from '../.
|
|
|
15
15
|
import { QuickStartContext, QuickStartContextValues } from '../../utils/quick-start-context';
|
|
16
16
|
|
|
17
17
|
export const QuickStartCatalogFilterSearch = ({ searchInputText, handleTextChange, ...props }) => {
|
|
18
|
-
const { getResource } =
|
|
18
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
19
19
|
return (
|
|
20
20
|
<ToolbarItem>
|
|
21
21
|
<SearchInput
|
|
@@ -37,9 +37,9 @@ export const QuickStartCatalogFilterSelect = ({
|
|
|
37
37
|
dropdownItems,
|
|
38
38
|
...props
|
|
39
39
|
}) => {
|
|
40
|
-
const { getResource } =
|
|
40
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
41
41
|
|
|
42
|
-
const toggle = (toggleRef:
|
|
42
|
+
const toggle = (toggleRef: Ref<MenuToggleElement>) => (
|
|
43
43
|
<MenuToggle
|
|
44
44
|
isFullWidth
|
|
45
45
|
ref={toggleRef}
|
|
@@ -69,13 +69,10 @@ export const QuickStartCatalogFilterSelect = ({
|
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
export const QuickStartCatalogFilterCount = ({ quickStartsCount }) => {
|
|
72
|
-
const { getResource } =
|
|
72
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
73
73
|
return (
|
|
74
74
|
<ToolbarItem align={{ default: 'alignEnd' }}>
|
|
75
|
-
{getResource(
|
|
76
|
-
'{{count, number}}',
|
|
77
|
-
quickStartsCount,
|
|
78
|
-
)}
|
|
75
|
+
{ getResource("{{count, number}} item", quickStartsCount).replace('{{count, number}}', quickStartsCount) }
|
|
79
76
|
</ToolbarItem>
|
|
80
77
|
);
|
|
81
78
|
};
|
|
@@ -83,12 +80,12 @@ export const QuickStartCatalogFilterCount = ({ quickStartsCount }) => {
|
|
|
83
80
|
interface QuickStartCatalogFilterSearchWrapperProps {
|
|
84
81
|
onSearchInputChange: any;
|
|
85
82
|
}
|
|
86
|
-
export const QuickStartCatalogFilterSearchWrapper:
|
|
83
|
+
export const QuickStartCatalogFilterSearchWrapper: FC<
|
|
87
84
|
QuickStartCatalogFilterSearchWrapperProps
|
|
88
85
|
> = ({ onSearchInputChange = () => {} }) => {
|
|
89
86
|
const { useQueryParams, filter, setFilter } =
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
useContext<QuickStartContextValues>(QuickStartContext);
|
|
88
|
+
useEffect(() => {
|
|
92
89
|
// use this effect to clear the search when a `clear all` action is performed higher up
|
|
93
90
|
const unlisten = history.listen(({ location }) => {
|
|
94
91
|
const searchParams = new URLSearchParams(location.search);
|
|
@@ -141,12 +138,12 @@ export const equalsIgnoreOrder = (a: any[], b: any[]) => {
|
|
|
141
138
|
interface QuickStartCatalogFilterStatusWrapperProps {
|
|
142
139
|
onStatusChange: any;
|
|
143
140
|
}
|
|
144
|
-
export const QuickStartCatalogFilterStatusWrapper:
|
|
141
|
+
export const QuickStartCatalogFilterStatusWrapper: FC<
|
|
145
142
|
QuickStartCatalogFilterStatusWrapperProps
|
|
146
143
|
> = ({ onStatusChange = () => {} }) => {
|
|
147
144
|
const { useQueryParams, filter, setFilter } =
|
|
148
|
-
|
|
149
|
-
|
|
145
|
+
useContext<QuickStartContextValues>(QuickStartContext);
|
|
146
|
+
useEffect(() => {
|
|
150
147
|
// use this effect to clear the status when a `clear all` action is performed higher up
|
|
151
148
|
const unlisten = history.listen(({ location }) => {
|
|
152
149
|
const searchParams = new URLSearchParams(location.search);
|
|
@@ -160,9 +157,9 @@ export const QuickStartCatalogFilterStatusWrapper: React.FC<
|
|
|
160
157
|
unlisten();
|
|
161
158
|
};
|
|
162
159
|
});
|
|
163
|
-
const [isDropdownOpen, setIsDropdownOpen] =
|
|
160
|
+
const [isDropdownOpen, setIsDropdownOpen] = useState(false);
|
|
164
161
|
|
|
165
|
-
const onRowfilterSelect =
|
|
162
|
+
const onRowfilterSelect = useCallback(
|
|
166
163
|
(_e, selectedValue) => {
|
|
167
164
|
setIsDropdownOpen(false);
|
|
168
165
|
const selection = Object.entries(filter.status.statusTypes).find(
|
|
@@ -210,6 +207,6 @@ export const QuickStartCatalogFilterStatusWrapper: React.FC<
|
|
|
210
207
|
interface QuickStartCatalogFilterCountWrapperProps {
|
|
211
208
|
quickStartsCount: number;
|
|
212
209
|
}
|
|
213
|
-
export const QuickStartCatalogFilterCountWrapper:
|
|
214
|
-
|
|
215
|
-
|
|
210
|
+
export const QuickStartCatalogFilterCountWrapper: FC<QuickStartCatalogFilterCountWrapperProps> = ({
|
|
211
|
+
quickStartsCount,
|
|
212
|
+
}) => <QuickStartCatalogFilterCount quickStartsCount={quickStartsCount} />;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { Popover } from '@patternfly/react-core';
|
|
3
2
|
import { shallow } from 'enzyme';
|
|
4
3
|
import { getQuickStarts } from '../../data/test-utils';
|
|
@@ -12,7 +11,7 @@ jest.mock('react', () => {
|
|
|
12
11
|
};
|
|
13
12
|
});
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
xdescribe('QuickStartCatalog', () => {
|
|
16
15
|
beforeEach(() => {
|
|
17
16
|
spyOn(React, 'useContext').and.returnValue({
|
|
18
17
|
activeQuickStartID: '',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext } from 'react';
|
|
2
2
|
import { Button } from '@patternfly/react-core';
|
|
3
3
|
import ArrowRightIcon from '@patternfly/react-icons/dist/js/icons/arrow-right-icon';
|
|
4
4
|
import QuickStartMarkdownView from '../QuickStartMarkdownView';
|
|
@@ -15,7 +15,7 @@ interface QuickStartConclusionProps {
|
|
|
15
15
|
onTaskSelect: (selectedTaskNumber: number) => void;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
const QuickStartConclusion:
|
|
18
|
+
const QuickStartConclusion: FC<QuickStartConclusionProps> = ({
|
|
19
19
|
tasks,
|
|
20
20
|
conclusion,
|
|
21
21
|
allTaskStatuses,
|
|
@@ -24,7 +24,7 @@ const QuickStartConclusion: React.FC<QuickStartConclusionProps> = ({
|
|
|
24
24
|
onTaskSelect,
|
|
25
25
|
}) => {
|
|
26
26
|
const hasFailedTask = allTaskStatuses.includes(QuickStartTaskStatus.FAILED);
|
|
27
|
-
const { getResource } =
|
|
27
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
28
28
|
return (
|
|
29
29
|
<>
|
|
30
30
|
<TaskHeaderList tasks={tasks} allTaskStatuses={allTaskStatuses} onTaskSelect={onTaskSelect} />
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { forwardRef } from 'react';
|
|
2
2
|
import { QuickStart, QuickStartTaskStatus } from '../utils/quick-start-types';
|
|
3
3
|
import QuickStartConclusion from './QuickStartConclusion';
|
|
4
4
|
import QuickStartIntroduction from './QuickStartIntroduction';
|
|
@@ -14,7 +14,7 @@ interface QuickStartContentProps {
|
|
|
14
14
|
}
|
|
15
15
|
import './QuickStartContent.scss';
|
|
16
16
|
|
|
17
|
-
const QuickStartContent =
|
|
17
|
+
const QuickStartContent = forwardRef<HTMLDivElement, QuickStartContentProps>(
|
|
18
18
|
(
|
|
19
19
|
{
|
|
20
20
|
quickStart,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useCallback, useContext, useMemo } from 'react';
|
|
2
2
|
import { Button } from '@patternfly/react-core';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
4
|
import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start-context';
|
|
@@ -17,7 +17,7 @@ export interface QuickStartFooterProps {
|
|
|
17
17
|
className?: string;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
const QuickStartFooter:
|
|
20
|
+
const QuickStartFooter: FC<QuickStartFooterProps> = ({
|
|
21
21
|
status,
|
|
22
22
|
taskNumber,
|
|
23
23
|
totalTasks,
|
|
@@ -26,10 +26,9 @@ const QuickStartFooter: React.FC<QuickStartFooterProps> = ({
|
|
|
26
26
|
quickStartId,
|
|
27
27
|
className,
|
|
28
28
|
}) => {
|
|
29
|
-
const { restartQuickStart, getResource } =
|
|
30
|
-
React.useContext<QuickStartContextValues>(QuickStartContext);
|
|
29
|
+
const { restartQuickStart, getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
31
30
|
|
|
32
|
-
const PrimaryButtonText =
|
|
31
|
+
const PrimaryButtonText = useMemo(
|
|
33
32
|
() => ({
|
|
34
33
|
START: getResource('Start'),
|
|
35
34
|
CONTINUE: getResource('Continue'),
|
|
@@ -39,7 +38,7 @@ const QuickStartFooter: React.FC<QuickStartFooterProps> = ({
|
|
|
39
38
|
[getResource],
|
|
40
39
|
);
|
|
41
40
|
|
|
42
|
-
const SecondaryButtonText =
|
|
41
|
+
const SecondaryButtonText = useMemo(
|
|
43
42
|
() => ({
|
|
44
43
|
BACK: getResource('Back'),
|
|
45
44
|
RESTART: getResource('Restart'),
|
|
@@ -47,7 +46,7 @@ const QuickStartFooter: React.FC<QuickStartFooterProps> = ({
|
|
|
47
46
|
[getResource],
|
|
48
47
|
);
|
|
49
48
|
|
|
50
|
-
const onRestart =
|
|
49
|
+
const onRestart = useCallback(
|
|
51
50
|
(e: React.SyntheticEvent) => {
|
|
52
51
|
e.preventDefault();
|
|
53
52
|
e.stopPropagation();
|
|
@@ -56,7 +55,7 @@ const QuickStartFooter: React.FC<QuickStartFooterProps> = ({
|
|
|
56
55
|
[quickStartId, restartQuickStart, totalTasks],
|
|
57
56
|
);
|
|
58
57
|
|
|
59
|
-
const getPrimaryButtonText =
|
|
58
|
+
const getPrimaryButtonText = useMemo(() => {
|
|
60
59
|
if (status === QuickStartStatus.NOT_STARTED) {
|
|
61
60
|
return PrimaryButtonText.START;
|
|
62
61
|
}
|
|
@@ -72,7 +71,7 @@ const QuickStartFooter: React.FC<QuickStartFooterProps> = ({
|
|
|
72
71
|
return PrimaryButtonText.CONTINUE;
|
|
73
72
|
}, [taskNumber, totalTasks, PrimaryButtonText, status]);
|
|
74
73
|
|
|
75
|
-
const getPrimaryButton =
|
|
74
|
+
const getPrimaryButton = useMemo(
|
|
76
75
|
() => (
|
|
77
76
|
<Button
|
|
78
77
|
variant="primary"
|
|
@@ -87,7 +86,7 @@ const QuickStartFooter: React.FC<QuickStartFooterProps> = ({
|
|
|
87
86
|
[getPrimaryButtonText, onNext],
|
|
88
87
|
);
|
|
89
88
|
|
|
90
|
-
const getSecondaryButton =
|
|
89
|
+
const getSecondaryButton = useMemo(
|
|
91
90
|
() =>
|
|
92
91
|
taskNumber === -1 && status !== QuickStartStatus.NOT_STARTED ? (
|
|
93
92
|
<Button variant="secondary" onClick={onRestart} data-testid="qs-drawer-restart">
|
|
@@ -103,7 +102,7 @@ const QuickStartFooter: React.FC<QuickStartFooterProps> = ({
|
|
|
103
102
|
[onRestart, onBack, SecondaryButtonText, status, taskNumber],
|
|
104
103
|
);
|
|
105
104
|
|
|
106
|
-
const getSideNoteAction =
|
|
105
|
+
const getSideNoteAction = useMemo(
|
|
107
106
|
() =>
|
|
108
107
|
taskNumber !== -1 && (
|
|
109
108
|
<Button variant="link" onClick={onRestart} data-testid="qs-drawer-side-note-action">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext, useState } from 'react';
|
|
2
2
|
import { ExpandableSection, List, ListItem, Stack } from '@patternfly/react-core';
|
|
3
3
|
import QuickStartMarkdownView from '../QuickStartMarkdownView';
|
|
4
4
|
import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start-context';
|
|
@@ -13,16 +13,16 @@ interface QuickStartIntroductionProps {
|
|
|
13
13
|
onTaskSelect: (selectedTaskNumber: number) => void;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
const QuickStartIntroduction:
|
|
16
|
+
const QuickStartIntroduction: FC<QuickStartIntroductionProps> = ({
|
|
17
17
|
tasks,
|
|
18
18
|
introduction,
|
|
19
19
|
allTaskStatuses,
|
|
20
20
|
prerequisites,
|
|
21
21
|
onTaskSelect,
|
|
22
22
|
}) => {
|
|
23
|
-
const { getResource } =
|
|
23
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
24
24
|
const prereqs = prerequisites?.filter((p) => p);
|
|
25
|
-
const [isPrereqsExpanded, setIsPrereqsExpanded] =
|
|
25
|
+
const [isPrereqsExpanded, setIsPrereqsExpanded] = useState(false);
|
|
26
26
|
const prereqList = prereqs?.length > 0 && (
|
|
27
27
|
<ExpandableSection
|
|
28
28
|
toggleText={getResource('View Prerequisites ({{totalPrereqs}})').replace(
|
|
@@ -47,7 +47,7 @@ const QuickStartIntroduction: React.FC<QuickStartIntroductionProps> = ({
|
|
|
47
47
|
<p>
|
|
48
48
|
{getResource(
|
|
49
49
|
'In this quick start, you will complete {{count, number}} task',
|
|
50
|
-
tasks?.length,
|
|
50
|
+
tasks?.length || 0,
|
|
51
51
|
).replace('{{count, number}}', tasks?.length || 0)}
|
|
52
52
|
:
|
|
53
53
|
</p>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext, useEffect, useRef } from 'react';
|
|
2
2
|
import { Title, WizardNavItem } from '@patternfly/react-core';
|
|
3
3
|
import { QuickStartContext } from '../utils/quick-start-context';
|
|
4
4
|
import { QuickStartTaskStatus } from '../utils/quick-start-types';
|
|
@@ -16,7 +16,7 @@ interface QuickStartTaskHeaderProps {
|
|
|
16
16
|
children?: React.ReactNode;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
const QuickStartTaskHeader:
|
|
19
|
+
const QuickStartTaskHeader: FC<QuickStartTaskHeaderProps> = ({
|
|
20
20
|
title,
|
|
21
21
|
taskIndex,
|
|
22
22
|
subtitle,
|
|
@@ -26,10 +26,10 @@ const QuickStartTaskHeader: React.FC<QuickStartTaskHeaderProps> = ({
|
|
|
26
26
|
onTaskSelect,
|
|
27
27
|
children,
|
|
28
28
|
}) => {
|
|
29
|
-
const titleRef =
|
|
30
|
-
const { focusOnQuickStart } =
|
|
29
|
+
const titleRef = useRef(null);
|
|
30
|
+
const { focusOnQuickStart } = useContext(QuickStartContext);
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
useEffect(() => {
|
|
33
33
|
if (focusOnQuickStart && isActiveTask) {
|
|
34
34
|
// Focus the WizardNavItem button element that contains the title
|
|
35
35
|
titleRef.current.parentNode.focus();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import { QuickStartTask, QuickStartTaskStatus } from '../utils/quick-start-types';
|
|
3
3
|
import TaskHeader from './QuickStartTaskHeader';
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ interface QuickStartTaskHeaderListProps {
|
|
|
8
8
|
onTaskSelect: (selectedTaskNumber: number) => void;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const QuickStartTaskHeaderList:
|
|
11
|
+
const QuickStartTaskHeaderList: FC<QuickStartTaskHeaderListProps> = ({
|
|
12
12
|
tasks,
|
|
13
13
|
allTaskStatuses,
|
|
14
14
|
onTaskSelect,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { CSSProperties, FC, useContext } from 'react';
|
|
2
2
|
import { Alert, Radio } from '@patternfly/react-core';
|
|
3
3
|
import QuickStartMarkdownView from '../QuickStartMarkdownView';
|
|
4
4
|
import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start-context';
|
|
@@ -24,13 +24,13 @@ const getAlertVariant = (status) => {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
const QuickStartTaskReview:
|
|
27
|
+
const QuickStartTaskReview: FC<QuickStartTaskReviewProps> = ({
|
|
28
28
|
review,
|
|
29
29
|
taskStatus,
|
|
30
30
|
onTaskReview,
|
|
31
31
|
}) => {
|
|
32
32
|
const { instructions, failedTaskHelp: taskHelp } = review;
|
|
33
|
-
const { getResource } =
|
|
33
|
+
const { getResource } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
34
34
|
|
|
35
35
|
return (
|
|
36
36
|
<Alert
|
|
@@ -41,7 +41,7 @@ const QuickStartTaskReview: React.FC<QuickStartTaskReviewProps> = ({
|
|
|
41
41
|
style={
|
|
42
42
|
{
|
|
43
43
|
marginBottom: 'var(--pf-t--global--spacer--md)',
|
|
44
|
-
} as
|
|
44
|
+
} as CSSProperties
|
|
45
45
|
}
|
|
46
46
|
>
|
|
47
47
|
<QuickStartMarkdownView content={instructions} />
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, Fragment, useContext } from 'react';
|
|
2
2
|
import QuickStartMarkdownView from '../QuickStartMarkdownView';
|
|
3
3
|
import { QUICKSTART_TASKS_INITIAL_STATES } from '../utils/const';
|
|
4
4
|
import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start-context';
|
|
@@ -15,7 +15,7 @@ interface QuickStartTaskProps {
|
|
|
15
15
|
onTaskSelect: (activeQuickStartId) => void;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
const QuickStartTasks:
|
|
18
|
+
const QuickStartTasks: FC<QuickStartTaskProps> = ({
|
|
19
19
|
tasks,
|
|
20
20
|
taskNumber,
|
|
21
21
|
allTaskStatuses,
|
|
@@ -23,7 +23,7 @@ const QuickStartTasks: React.FC<QuickStartTaskProps> = ({
|
|
|
23
23
|
onTaskSelect,
|
|
24
24
|
}) => {
|
|
25
25
|
const { getResource, alwaysShowTaskReview } =
|
|
26
|
-
|
|
26
|
+
useContext<QuickStartContextValues>(QuickStartContext);
|
|
27
27
|
return (
|
|
28
28
|
<div className="pf-v6-c-wizard pf-v6-c-wizard__nav-list" style={{ padding: '0 0 0 0' }}>
|
|
29
29
|
<ul>
|
|
@@ -37,7 +37,7 @@ const QuickStartTasks: React.FC<QuickStartTaskProps> = ({
|
|
|
37
37
|
(!QUICKSTART_TASKS_INITIAL_STATES.includes(taskStatus) || alwaysShowTaskReview) &&
|
|
38
38
|
review;
|
|
39
39
|
return (
|
|
40
|
-
<
|
|
40
|
+
<Fragment key={title}>
|
|
41
41
|
<TaskHeader
|
|
42
42
|
taskIndex={index + 1}
|
|
43
43
|
title={title}
|
|
@@ -62,7 +62,7 @@ const QuickStartTasks: React.FC<QuickStartTaskProps> = ({
|
|
|
62
62
|
</Stack>
|
|
63
63
|
)}
|
|
64
64
|
</TaskHeader>
|
|
65
|
-
</
|
|
65
|
+
</Fragment>
|
|
66
66
|
);
|
|
67
67
|
})}
|
|
68
68
|
</ul>
|