@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,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { FC, useContext } from 'react';
|
|
2
2
|
import { SyncMarkdownView } from '@console/internal/components/markdown-view';
|
|
3
3
|
import {
|
|
4
4
|
AccordionRenderExtension,
|
|
@@ -21,12 +21,12 @@ interface QuickStartMarkdownViewProps {
|
|
|
21
21
|
className?: string;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
const QuickStartMarkdownView:
|
|
24
|
+
const QuickStartMarkdownView: FC<QuickStartMarkdownViewProps> = ({
|
|
25
25
|
content,
|
|
26
26
|
exactHeight,
|
|
27
27
|
className,
|
|
28
28
|
}) => {
|
|
29
|
-
const { markdown } =
|
|
29
|
+
const { markdown } = useContext<QuickStartContextValues>(QuickStartContext);
|
|
30
30
|
const inlineCopyClipboardShowdownExtension = useInlineCopyClipboardShowdownExtension();
|
|
31
31
|
const multilineCopyClipboardShowdownExtension = useMultilineCopyClipboardShowdownExtension();
|
|
32
32
|
const admonitionShowdownExtension = useAdmonitionShowdownExtension();
|
|
@@ -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,7 +69,7 @@ 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
75
|
{getResource('{{count, number}} item', quickStartsCount).replace(
|
|
@@ -83,12 +83,12 @@ export const QuickStartCatalogFilterCount = ({ quickStartsCount }) => {
|
|
|
83
83
|
interface QuickStartCatalogFilterSearchWrapperProps {
|
|
84
84
|
onSearchInputChange: any;
|
|
85
85
|
}
|
|
86
|
-
export const QuickStartCatalogFilterSearchWrapper:
|
|
86
|
+
export const QuickStartCatalogFilterSearchWrapper: FC<
|
|
87
87
|
QuickStartCatalogFilterSearchWrapperProps
|
|
88
88
|
> = ({ onSearchInputChange = () => {} }) => {
|
|
89
89
|
const { useQueryParams, filter, setFilter } =
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
useContext<QuickStartContextValues>(QuickStartContext);
|
|
91
|
+
useEffect(() => {
|
|
92
92
|
// use this effect to clear the search when a `clear all` action is performed higher up
|
|
93
93
|
const unlisten = history.listen(({ location }) => {
|
|
94
94
|
const searchParams = new URLSearchParams(location.search);
|
|
@@ -141,12 +141,12 @@ export const equalsIgnoreOrder = (a: any[], b: any[]) => {
|
|
|
141
141
|
interface QuickStartCatalogFilterStatusWrapperProps {
|
|
142
142
|
onStatusChange: any;
|
|
143
143
|
}
|
|
144
|
-
export const QuickStartCatalogFilterStatusWrapper:
|
|
144
|
+
export const QuickStartCatalogFilterStatusWrapper: FC<
|
|
145
145
|
QuickStartCatalogFilterStatusWrapperProps
|
|
146
146
|
> = ({ onStatusChange = () => {} }) => {
|
|
147
147
|
const { useQueryParams, filter, setFilter } =
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
useContext<QuickStartContextValues>(QuickStartContext);
|
|
149
|
+
useEffect(() => {
|
|
150
150
|
// use this effect to clear the status when a `clear all` action is performed higher up
|
|
151
151
|
const unlisten = history.listen(({ location }) => {
|
|
152
152
|
const searchParams = new URLSearchParams(location.search);
|
|
@@ -160,9 +160,9 @@ export const QuickStartCatalogFilterStatusWrapper: React.FC<
|
|
|
160
160
|
unlisten();
|
|
161
161
|
};
|
|
162
162
|
});
|
|
163
|
-
const [isDropdownOpen, setIsDropdownOpen] =
|
|
163
|
+
const [isDropdownOpen, setIsDropdownOpen] = useState(false);
|
|
164
164
|
|
|
165
|
-
const onRowfilterSelect =
|
|
165
|
+
const onRowfilterSelect = useCallback(
|
|
166
166
|
(_e, selectedValue) => {
|
|
167
167
|
setIsDropdownOpen(false);
|
|
168
168
|
const selection = Object.entries(filter.status.statusTypes).find(
|
|
@@ -210,6 +210,6 @@ export const QuickStartCatalogFilterStatusWrapper: React.FC<
|
|
|
210
210
|
interface QuickStartCatalogFilterCountWrapperProps {
|
|
211
211
|
quickStartsCount: number;
|
|
212
212
|
}
|
|
213
|
-
export const QuickStartCatalogFilterCountWrapper:
|
|
214
|
-
|
|
215
|
-
|
|
213
|
+
export const QuickStartCatalogFilterCountWrapper: FC<QuickStartCatalogFilterCountWrapperProps> = ({
|
|
214
|
+
quickStartsCount,
|
|
215
|
+
}) => <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(
|
|
@@ -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} />
|