@patternfly/quickstarts 6.0.0-alpha.2 → 6.0.0-alpha.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 +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/accordion-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/admonition-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/code-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/inline-clipboard-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/markdown-extensions/multiline-clipboard-extension.d.ts +0 -1
- package/dist/ConsoleShared/src/components/modal/Modal.d.ts +1 -2
- package/dist/ConsoleShared/src/components/spotlight/InteractiveSpotlight.d.ts +0 -1
- package/dist/ConsoleShared/src/components/spotlight/StaticSpotlight.d.ts +0 -1
- package/dist/HelpTopicDrawer.d.ts +0 -1
- package/dist/HelpTopicPanelContent.d.ts +0 -1
- package/dist/QuickStartDrawer.d.ts +0 -1
- package/dist/QuickStartPanelContent.d.ts +2 -2
- package/dist/catalog/QuickStartCatalog.d.ts +0 -1
- package/dist/catalog/QuickStartTile.d.ts +16 -2
- package/dist/catalog/QuickStartTileDescription.d.ts +0 -1
- package/dist/catalog/QuickStartTileFooter.d.ts +1 -0
- package/dist/catalog/QuickStartTileHeader.d.ts +1 -17
- package/dist/catalog/Toolbar/QuickStartCatalogFilter.d.ts +0 -1
- package/dist/catalog/index.d.ts +1 -1
- package/dist/controller/QuickStartContent.d.ts +1 -1
- package/dist/controller/QuickStartFooter.d.ts +1 -1
- package/dist/controller/QuickStartIntroduction.d.ts +0 -1
- package/dist/controller/QuickStartTaskHeaderList.d.ts +0 -1
- package/dist/controller/QuickStartTaskReview.d.ts +0 -1
- package/dist/controller/QuickStartTasks.d.ts +0 -1
- package/dist/index.es.js +188 -291
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +189 -292
- package/dist/index.js.map +1 -1
- package/dist/patternfly-docs/quick-starts/examples/HelpTopic.jsx +4 -4
- package/dist/patternfly-docs/quick-starts/examples/example-data/example-help-topics.js +9 -18
- package/dist/patternfly-global.css +7 -53
- package/dist/patternfly-nested.css +1749 -1778
- package/dist/quickstarts-base.css +40 -420
- package/dist/quickstarts-full.es.js +1181 -1238
- package/dist/quickstarts-full.es.js.map +1 -1
- package/dist/quickstarts-standalone.css +41 -382
- package/dist/quickstarts-standalone.min.css +3 -3
- package/dist/quickstarts-vendor.css +6 -11
- package/dist/quickstarts.css +46 -431
- package/dist/quickstarts.min.css +1 -1
- package/dist/utils/quick-start-types.d.ts +1 -1
- package/package.json +10 -11
- package/src/ConsoleInternal/components/markdown-view.tsx +29 -9
- package/src/ConsoleShared/src/components/markdown-extensions/accordion-extension.tsx +10 -17
- package/src/ConsoleShared/src/components/markdown-extensions/admonition-extension.tsx +5 -11
- package/src/ConsoleShared/src/components/markdown-extensions/code-extension.tsx +2 -2
- package/src/ConsoleShared/src/components/markdown-extensions/inline-clipboard-extension.tsx +0 -1
- package/src/ConsoleShared/src/components/markdown-extensions/multiline-clipboard-extension.tsx +2 -6
- package/src/ConsoleShared/src/components/markdown-extensions/utils.ts +2 -1
- package/src/ConsoleShared/src/components/modal/Modal.tsx +1 -2
- package/src/ConsoleShared/src/components/popper/SimplePopper.tsx +5 -2
- package/src/ConsoleShared/src/components/spotlight/InteractiveSpotlight.tsx +0 -1
- package/src/ConsoleShared/src/components/spotlight/StaticSpotlight.tsx +0 -1
- package/src/ConsoleShared/src/components/status/icons.tsx +1 -5
- package/src/HelpTopicDrawer.tsx +1 -4
- package/src/HelpTopicPanelContent.tsx +4 -16
- package/src/QuickStartCatalogPage.tsx +34 -25
- package/src/QuickStartCloseModal.tsx +2 -2
- package/src/QuickStartController.tsx +1 -1
- package/src/QuickStartDrawer.tsx +2 -7
- package/src/QuickStartPanelContent.scss +7 -39
- package/src/QuickStartPanelContent.tsx +20 -44
- package/src/catalog/Catalog/QuickStartCatalogHeader.tsx +5 -4
- package/src/catalog/Catalog/QuickStartCatalogSection.tsx +1 -1
- package/src/catalog/Catalog/QuickStartCatalogToolbar.tsx +1 -3
- package/src/catalog/QuickStartCatalog.tsx +12 -16
- package/src/catalog/QuickStartTile.scss +11 -9
- package/src/catalog/QuickStartTile.tsx +133 -72
- package/src/catalog/QuickStartTileDescription.tsx +28 -42
- package/src/catalog/QuickStartTileFooter.tsx +13 -19
- package/src/catalog/QuickStartTileHeader.tsx +9 -86
- package/src/catalog/Toolbar/QuickStartCatalogFilter.tsx +8 -10
- package/src/catalog/Toolbar/QuickStartCatalogFilterItems.tsx +2 -5
- package/src/catalog/__tests__/QuickStartCatalog.spec.tsx +3 -3
- package/src/catalog/__tests__/QuickStartTile.spec.tsx +5 -5
- package/src/catalog/__tests__/QuickStartTileDescription.spec.tsx +1 -1
- package/src/catalog/index.ts +1 -1
- package/src/controller/QuickStartConclusion.tsx +4 -4
- package/src/controller/QuickStartContent.scss +3 -7
- package/src/controller/QuickStartContent.tsx +3 -5
- package/src/controller/QuickStartFooter.scss +1 -11
- package/src/controller/QuickStartFooter.tsx +27 -21
- package/src/controller/QuickStartIntroduction.tsx +11 -16
- package/src/controller/QuickStartTaskHeader.scss +20 -42
- package/src/controller/QuickStartTaskHeader.tsx +21 -60
- package/src/controller/QuickStartTaskHeaderList.tsx +4 -6
- package/src/controller/QuickStartTaskReview.tsx +6 -12
- package/src/controller/QuickStartTasks.tsx +6 -8
- package/src/controller/__tests__/QuickStartConclusion.spec.tsx +6 -19
- package/src/controller/__tests__/QuickStartFooter.spec.tsx +9 -54
- package/src/controller/__tests__/QuickStartTaskHeader.spec.tsx +1 -1
- package/src/controller/__tests__/QuickStartTaskReview.spec.tsx +3 -6
- package/src/controller/__tests__/QuickStartTasks.spec.tsx +3 -6
- package/src/styles/_base.scss +3 -45
- package/src/styles/style.scss +1 -6
- package/src/utils/help-topic-context.tsx +2 -3
- package/src/utils/quick-start-context.tsx +10 -13
- package/src/utils/quick-start-types.ts +1 -1
- package/src/utils/quick-start-utils.ts +4 -2
- package/src/ConsoleInternal/components/_icon-and-text.scss +0 -14
- package/src/ConsoleInternal/components/_markdown-view.scss +0 -19
- package/src/ConsoleInternal/components/catalog/_catalog.scss +0 -392
- package/src/ConsoleInternal/components/utils/_status-box.scss +0 -58
- package/src/ConsoleShared/src/components/layout/PageLayout.scss +0 -29
- package/src/ConsoleShared/src/components/markdown-extensions/showdown-extension.scss +0 -52
- package/src/ConsoleShared/src/components/modal/Modal.scss +0 -3
- package/src/ConsoleShared/src/components/spotlight/spotlight.scss +0 -63
- package/src/QuickStartDrawer.scss +0 -11
- package/src/catalog/QuickStartCatalog.scss +0 -8
- package/src/catalog/QuickStartTileDescription.scss +0 -29
- package/src/catalog/QuickStartTileHeader.scss +0 -16
- package/src/catalog/Toolbar/QuickStartCatalogFilter.scss +0 -25
- package/src/controller/QuickStartIntroduction.scss +0 -35
- package/src/controller/QuickStartTaskHeaderList.scss +0 -17
- package/src/controller/QuickStartTaskReview.scss +0 -30
- package/src/controller/QuickStartTasks.scss +0 -90
- package/src/styles/_dark-custom-override.scss +0 -47
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import ExclamationCircleIcon from '@patternfly/react-icons/dist/js/icons/exclamation-circle-icon';
|
|
5
|
-
import { css } from '@patternfly/react-styles';
|
|
6
|
-
import { markdownConvert } from '../ConsoleInternal/components/markdown-view';
|
|
7
|
-
import { removeParagraphWrap } from '../QuickStartMarkdownView';
|
|
8
|
-
import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start-context';
|
|
2
|
+
import { Title, WizardNavItem } from '@patternfly/react-core';
|
|
3
|
+
import { QuickStartContext } from '../utils/quick-start-context';
|
|
9
4
|
import { QuickStartTaskStatus } from '../utils/quick-start-types';
|
|
10
5
|
|
|
11
6
|
import './QuickStartTaskHeader.scss';
|
|
@@ -21,40 +16,6 @@ interface QuickStartTaskHeaderProps {
|
|
|
21
16
|
children?: React.ReactNode;
|
|
22
17
|
}
|
|
23
18
|
|
|
24
|
-
const TaskIcon: React.FC<{
|
|
25
|
-
taskIndex: number;
|
|
26
|
-
taskStatus: QuickStartTaskStatus;
|
|
27
|
-
}> = ({ taskIndex, taskStatus }) => {
|
|
28
|
-
const { getResource } = React.useContext<QuickStartContextValues>(QuickStartContext);
|
|
29
|
-
const success = taskStatus === QuickStartTaskStatus.SUCCESS;
|
|
30
|
-
const failed = taskStatus === QuickStartTaskStatus.FAILED;
|
|
31
|
-
|
|
32
|
-
const classNames = css('pfext-icon-and-text__icon', {
|
|
33
|
-
'pfext-quick-start-task-header__task-icon-init': !failed && !success,
|
|
34
|
-
});
|
|
35
|
-
let content: React.ReactNode;
|
|
36
|
-
|
|
37
|
-
if (success) {
|
|
38
|
-
content = (
|
|
39
|
-
<Icon size="md">
|
|
40
|
-
<CheckCircleIcon className="pfext-quick-start-task-header__task-icon-success" />{' '}
|
|
41
|
-
</Icon>
|
|
42
|
-
);
|
|
43
|
-
} else if (failed) {
|
|
44
|
-
content = (
|
|
45
|
-
<Icon size="md">
|
|
46
|
-
<ExclamationCircleIcon className="pfext-quick-start-task-header__task-icon-failed" />
|
|
47
|
-
</Icon>
|
|
48
|
-
);
|
|
49
|
-
} else {
|
|
50
|
-
content = getResource('{{taskIndex, number}}', taskIndex).replace(
|
|
51
|
-
'{{taskIndex, number}}',
|
|
52
|
-
taskIndex,
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
return <span className={classNames}>{content}</span>;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
19
|
const QuickStartTaskHeader: React.FC<QuickStartTaskHeaderProps> = ({
|
|
59
20
|
title,
|
|
60
21
|
taskIndex,
|
|
@@ -74,17 +35,8 @@ const QuickStartTaskHeader: React.FC<QuickStartTaskHeaderProps> = ({
|
|
|
74
35
|
titleRef.current.parentNode.focus();
|
|
75
36
|
}
|
|
76
37
|
}, [focusOnQuickStart, isActiveTask]);
|
|
77
|
-
const classNames = css('pfext-quick-start-task-header__title', {
|
|
78
|
-
'pfext-quick-start-task-header__title-success': taskStatus === QuickStartTaskStatus.SUCCESS,
|
|
79
|
-
'pfext-quick-start-task-header__title-failed':
|
|
80
|
-
taskStatus === (QuickStartTaskStatus.FAILED || QuickStartTaskStatus.VISITED),
|
|
81
|
-
});
|
|
82
|
-
// const notCompleted = taskStatus === QuickStartTaskStatus.VISITED;
|
|
83
|
-
// const skippedReview = taskStatus === QuickStartTaskStatus.REVIEW;
|
|
84
38
|
const failedReview = taskStatus === QuickStartTaskStatus.FAILED;
|
|
85
39
|
|
|
86
|
-
// TODO: toned down when this is shown, investigate further when we should display it
|
|
87
|
-
// related: https://github.com/patternfly/patternfly-quickstarts/issues/104
|
|
88
40
|
const tryAgain = failedReview && (
|
|
89
41
|
<>
|
|
90
42
|
<div />
|
|
@@ -94,23 +46,31 @@ const QuickStartTaskHeader: React.FC<QuickStartTaskHeaderProps> = ({
|
|
|
94
46
|
|
|
95
47
|
const content = (
|
|
96
48
|
<div ref={titleRef}>
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
49
|
+
<Title headingLevel="h3" size={size}>
|
|
50
|
+
<span className="pfext-quick-start-task-header__title">{title}</span>
|
|
51
|
+
{isActiveTask && subtitle && (
|
|
52
|
+
<span>
|
|
53
|
+
{' '}
|
|
100
54
|
<span
|
|
101
55
|
data-test-id="quick-start-task-subtitle"
|
|
56
|
+
className="pfext-quick-start-task-header__subtitle"
|
|
102
57
|
>
|
|
103
|
-
{
|
|
104
|
-
<Text component={TextVariants.small}>
|
|
105
|
-
{subtitle}
|
|
106
|
-
</Text>
|
|
58
|
+
{subtitle}
|
|
107
59
|
</span>
|
|
108
|
-
|
|
60
|
+
</span>
|
|
61
|
+
)}
|
|
109
62
|
{tryAgain}
|
|
110
|
-
|
|
111
|
-
</div>
|
|
63
|
+
</Title>
|
|
64
|
+
</div>
|
|
112
65
|
);
|
|
113
66
|
|
|
67
|
+
let status: 'default' | 'error' | 'success' = 'default';
|
|
68
|
+
if (taskStatus === QuickStartTaskStatus.FAILED) {
|
|
69
|
+
status = 'error';
|
|
70
|
+
} else if (taskStatus === QuickStartTaskStatus.SUCCESS) {
|
|
71
|
+
status = 'success';
|
|
72
|
+
}
|
|
73
|
+
|
|
114
74
|
return (
|
|
115
75
|
<WizardNavItem
|
|
116
76
|
content={content}
|
|
@@ -118,6 +78,7 @@ const QuickStartTaskHeader: React.FC<QuickStartTaskHeaderProps> = ({
|
|
|
118
78
|
onClick={() => onTaskSelect(taskIndex - 1)}
|
|
119
79
|
component="button"
|
|
120
80
|
isCurrent={isActiveTask}
|
|
81
|
+
status={status}
|
|
121
82
|
>
|
|
122
83
|
{children}
|
|
123
84
|
</WizardNavItem>
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { List } from '@patternfly/react-core';
|
|
3
2
|
import { QuickStartTask, QuickStartTaskStatus } from '../utils/quick-start-types';
|
|
4
3
|
import TaskHeader from './QuickStartTaskHeader';
|
|
5
4
|
|
|
6
|
-
import './QuickStartTaskHeaderList.scss';
|
|
7
|
-
|
|
8
5
|
interface QuickStartTaskHeaderListProps {
|
|
9
6
|
tasks: QuickStartTask[];
|
|
10
7
|
allTaskStatuses: QuickStartTaskStatus[];
|
|
@@ -15,8 +12,9 @@ const QuickStartTaskHeaderList: React.FC<QuickStartTaskHeaderListProps> = ({
|
|
|
15
12
|
tasks,
|
|
16
13
|
allTaskStatuses,
|
|
17
14
|
onTaskSelect,
|
|
18
|
-
}) =>
|
|
19
|
-
|
|
15
|
+
}) =>
|
|
16
|
+
tasks?.length > 0 ? (
|
|
17
|
+
<div className="pf-v6-c-wizard__nav-list">
|
|
20
18
|
{tasks.map((task, index) => (
|
|
21
19
|
<TaskHeader
|
|
22
20
|
key={task.title}
|
|
@@ -27,7 +25,7 @@ const QuickStartTaskHeaderList: React.FC<QuickStartTaskHeaderListProps> = ({
|
|
|
27
25
|
onTaskSelect={onTaskSelect}
|
|
28
26
|
/>
|
|
29
27
|
))}
|
|
30
|
-
</
|
|
28
|
+
</div>
|
|
31
29
|
) : null;
|
|
32
30
|
|
|
33
31
|
export default QuickStartTaskHeaderList;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Alert, Radio } from '@patternfly/react-core';
|
|
3
|
-
import { css } from '@patternfly/react-styles';
|
|
4
3
|
import QuickStartMarkdownView from '../QuickStartMarkdownView';
|
|
5
4
|
import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start-context';
|
|
6
5
|
import {
|
|
@@ -8,8 +7,6 @@ import {
|
|
|
8
7
|
QuickStartTaskStatus,
|
|
9
8
|
} from '../utils/quick-start-types';
|
|
10
9
|
|
|
11
|
-
import './QuickStartTaskReview.scss';
|
|
12
|
-
|
|
13
10
|
interface QuickStartTaskReviewProps {
|
|
14
11
|
review: QuickStartTaskReviewType;
|
|
15
12
|
taskStatus: QuickStartTaskStatus;
|
|
@@ -35,20 +32,17 @@ const QuickStartTaskReview: React.FC<QuickStartTaskReviewProps> = ({
|
|
|
35
32
|
const { instructions, failedTaskHelp: taskHelp } = review;
|
|
36
33
|
const { getResource } = React.useContext<QuickStartContextValues>(QuickStartContext);
|
|
37
34
|
|
|
38
|
-
const alertClassNames = css('pfext-quick-start-task-review', {
|
|
39
|
-
'pfext-quick-start-task-review--success': taskStatus === QuickStartTaskStatus.SUCCESS,
|
|
40
|
-
'pfext-quick-start-task-review--failed': taskStatus === QuickStartTaskStatus.FAILED,
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
const title = <span className={alertClassNames}>{getResource('Check your work')}</span>;
|
|
44
|
-
|
|
45
35
|
return (
|
|
46
36
|
<Alert
|
|
47
|
-
className="pfext-quick-start-task-review-alert"
|
|
48
37
|
variant={getAlertVariant(taskStatus)}
|
|
49
|
-
title={
|
|
38
|
+
title={getResource('Check your work')}
|
|
50
39
|
isInline
|
|
51
40
|
role="alert"
|
|
41
|
+
style={
|
|
42
|
+
{
|
|
43
|
+
marginBottom: 'var(--pf-t--global--spacer--md)',
|
|
44
|
+
} as React.CSSProperties
|
|
45
|
+
}
|
|
52
46
|
>
|
|
53
47
|
<QuickStartMarkdownView content={instructions} />
|
|
54
48
|
<span className="pfext-quick-start-task-review__actions">
|
|
@@ -5,8 +5,7 @@ import { QuickStartContext, QuickStartContextValues } from '../utils/quick-start
|
|
|
5
5
|
import { QuickStartTask, QuickStartTaskStatus } from '../utils/quick-start-types';
|
|
6
6
|
import TaskHeader from './QuickStartTaskHeader';
|
|
7
7
|
import QuickStartTaskReview from './QuickStartTaskReview';
|
|
8
|
-
|
|
9
|
-
import './QuickStartTasks.scss';
|
|
8
|
+
import { Stack } from '@patternfly/react-core';
|
|
10
9
|
|
|
11
10
|
interface QuickStartTaskProps {
|
|
12
11
|
tasks: QuickStartTask[];
|
|
@@ -23,11 +22,10 @@ const QuickStartTasks: React.FC<QuickStartTaskProps> = ({
|
|
|
23
22
|
onTaskReview,
|
|
24
23
|
onTaskSelect,
|
|
25
24
|
}) => {
|
|
26
|
-
const { getResource, alwaysShowTaskReview } =
|
|
27
|
-
QuickStartContext
|
|
28
|
-
);
|
|
25
|
+
const { getResource, alwaysShowTaskReview } =
|
|
26
|
+
React.useContext<QuickStartContextValues>(QuickStartContext);
|
|
29
27
|
return (
|
|
30
|
-
<div className="
|
|
28
|
+
<div className="pf-v6-c-wizard__nav-list" style={{ padding: '0 0 0 0' }}>
|
|
31
29
|
<ul>
|
|
32
30
|
{tasks
|
|
33
31
|
.filter((_, index) => allTaskStatuses[index] !== QuickStartTaskStatus.INIT)
|
|
@@ -52,7 +50,7 @@ const QuickStartTasks: React.FC<QuickStartTaskProps> = ({
|
|
|
52
50
|
onTaskSelect={onTaskSelect}
|
|
53
51
|
>
|
|
54
52
|
{isActiveTask && (
|
|
55
|
-
<
|
|
53
|
+
<Stack hasGutter>
|
|
56
54
|
<QuickStartMarkdownView content={description} />
|
|
57
55
|
{shouldShowTaskReview && (
|
|
58
56
|
<QuickStartTaskReview
|
|
@@ -61,7 +59,7 @@ const QuickStartTasks: React.FC<QuickStartTaskProps> = ({
|
|
|
61
59
|
onTaskReview={onTaskReview}
|
|
62
60
|
/>
|
|
63
61
|
)}
|
|
64
|
-
</
|
|
62
|
+
</Stack>
|
|
65
63
|
)}
|
|
66
64
|
</TaskHeader>
|
|
67
65
|
</React.Fragment>
|
|
@@ -43,12 +43,7 @@ describe('QuickStartConclusion', () => {
|
|
|
43
43
|
});
|
|
44
44
|
|
|
45
45
|
it('should render conclusion if there are no failed tasks', () => {
|
|
46
|
-
expect(
|
|
47
|
-
wrapper
|
|
48
|
-
.find(QuickStartMarkdownView)
|
|
49
|
-
.first()
|
|
50
|
-
.props().content,
|
|
51
|
-
).toEqual('conclusion');
|
|
46
|
+
expect(wrapper.find(QuickStartMarkdownView).first().props().content).toEqual('conclusion');
|
|
52
47
|
});
|
|
53
48
|
|
|
54
49
|
it('should render link for next quick start if nextQuickStart prop is available and there are no failed tasks', () => {
|
|
@@ -58,12 +53,9 @@ describe('QuickStartConclusion', () => {
|
|
|
58
53
|
nextQuickStarts={[getQuickStartByName('explore-pipelines', allQuickStarts)]}
|
|
59
54
|
/>,
|
|
60
55
|
);
|
|
61
|
-
expect(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
.at(0)
|
|
65
|
-
.props().children[0],
|
|
66
|
-
).toEqual(`${i18nNS}~Start Installing the Pipelines Operator quick start`);
|
|
56
|
+
expect(wrapper.find(Button).at(0).props().children).toEqual(
|
|
57
|
+
`${i18nNS}~Start Installing the Pipelines Operator quick start`,
|
|
58
|
+
);
|
|
67
59
|
});
|
|
68
60
|
|
|
69
61
|
it('should not render link for next quick start if nextQuickStart props is not available', () => {
|
|
@@ -74,7 +66,7 @@ describe('QuickStartConclusion', () => {
|
|
|
74
66
|
wrapper = shallow(
|
|
75
67
|
<QuickStartConclusion
|
|
76
68
|
{...props}
|
|
77
|
-
|
|
69
|
+
nextQuickStarts={[getQuickStartByName('explore-pipelines', allQuickStarts)]}
|
|
78
70
|
allTaskStatuses={[
|
|
79
71
|
QuickStartTaskStatus.FAILED,
|
|
80
72
|
QuickStartTaskStatus.SUCCESS,
|
|
@@ -82,12 +74,7 @@ describe('QuickStartConclusion', () => {
|
|
|
82
74
|
]}
|
|
83
75
|
/>,
|
|
84
76
|
);
|
|
85
|
-
expect(
|
|
86
|
-
wrapper
|
|
87
|
-
.find(QuickStartMarkdownView)
|
|
88
|
-
.first()
|
|
89
|
-
.props().content,
|
|
90
|
-
).toEqual(
|
|
77
|
+
expect(wrapper.find(QuickStartMarkdownView).first().props().content).toEqual(
|
|
91
78
|
`${i18nNS}~One or more verifications did not pass during this quick start. Revisit the tasks or the help links, and then try again.`,
|
|
92
79
|
);
|
|
93
80
|
expect(wrapper.find(Button).length).toBe(0);
|
|
@@ -39,12 +39,7 @@ describe('QuickStartFooter', () => {
|
|
|
39
39
|
const footerButtons = quickStartFooterWrapper.find(Button);
|
|
40
40
|
expect(footerButtons.exists()).toBeTruthy();
|
|
41
41
|
expect(footerButtons.length).toEqual(1);
|
|
42
|
-
expect(
|
|
43
|
-
footerButtons
|
|
44
|
-
.at(0)
|
|
45
|
-
.childAt(0)
|
|
46
|
-
.text(),
|
|
47
|
-
).toBe('quickstart~Start');
|
|
42
|
+
expect(footerButtons.at(0).childAt(0).text()).toBe('quickstart~Start');
|
|
48
43
|
});
|
|
49
44
|
|
|
50
45
|
it('should load Continue and Restart buttons for in progress tours at into page', () => {
|
|
@@ -62,18 +57,8 @@ describe('QuickStartFooter', () => {
|
|
|
62
57
|
const footerButtons = quickStartFooterWrapper.find(Button);
|
|
63
58
|
expect(footerButtons.exists()).toBeTruthy();
|
|
64
59
|
expect(footerButtons.length).toEqual(2);
|
|
65
|
-
expect(
|
|
66
|
-
|
|
67
|
-
.at(0)
|
|
68
|
-
.childAt(0)
|
|
69
|
-
.text(),
|
|
70
|
-
).toBe('quickstart~Continue');
|
|
71
|
-
expect(
|
|
72
|
-
footerButtons
|
|
73
|
-
.at(1)
|
|
74
|
-
.childAt(0)
|
|
75
|
-
.text(),
|
|
76
|
-
).toBe('quickstart~Restart');
|
|
60
|
+
expect(footerButtons.at(0).childAt(0).text()).toBe('quickstart~Continue');
|
|
61
|
+
expect(footerButtons.at(1).childAt(0).text()).toBe('quickstart~Restart');
|
|
77
62
|
});
|
|
78
63
|
|
|
79
64
|
it('should load Next and Back buttons, and Restart link for in progress tours in task page', () => {
|
|
@@ -91,24 +76,9 @@ describe('QuickStartFooter', () => {
|
|
|
91
76
|
const footerButtons = quickStartFooterWrapper.find(Button);
|
|
92
77
|
expect(footerButtons.exists()).toBeTruthy();
|
|
93
78
|
expect(footerButtons.length).toEqual(3);
|
|
94
|
-
expect(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
.childAt(0)
|
|
98
|
-
.text(),
|
|
99
|
-
).toBe('quickstart~Next');
|
|
100
|
-
expect(
|
|
101
|
-
footerButtons
|
|
102
|
-
.at(1)
|
|
103
|
-
.childAt(0)
|
|
104
|
-
.text(),
|
|
105
|
-
).toBe('quickstart~Back');
|
|
106
|
-
expect(
|
|
107
|
-
footerButtons
|
|
108
|
-
.at(2)
|
|
109
|
-
.childAt(0)
|
|
110
|
-
.text(),
|
|
111
|
-
).toBe('quickstart~Restart');
|
|
79
|
+
expect(footerButtons.at(0).childAt(0).text()).toBe('quickstart~Next');
|
|
80
|
+
expect(footerButtons.at(1).childAt(0).text()).toBe('quickstart~Back');
|
|
81
|
+
expect(footerButtons.at(2).childAt(0).text()).toBe('quickstart~Restart');
|
|
112
82
|
});
|
|
113
83
|
|
|
114
84
|
it('should load Close, Back and Restart buttons for completed tours in conclusion page', () => {
|
|
@@ -126,23 +96,8 @@ describe('QuickStartFooter', () => {
|
|
|
126
96
|
const footerButtons = quickStartFooterWrapper.find(Button);
|
|
127
97
|
expect(footerButtons.exists()).toBeTruthy();
|
|
128
98
|
expect(footerButtons.length).toEqual(3);
|
|
129
|
-
expect(
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
.childAt(0)
|
|
133
|
-
.text(),
|
|
134
|
-
).toBe('quickstart~Close');
|
|
135
|
-
expect(
|
|
136
|
-
footerButtons
|
|
137
|
-
.at(1)
|
|
138
|
-
.childAt(0)
|
|
139
|
-
.text(),
|
|
140
|
-
).toBe('quickstart~Back');
|
|
141
|
-
expect(
|
|
142
|
-
footerButtons
|
|
143
|
-
.at(2)
|
|
144
|
-
.childAt(0)
|
|
145
|
-
.text(),
|
|
146
|
-
).toBe('quickstart~Restart');
|
|
99
|
+
expect(footerButtons.at(0).childAt(0).text()).toBe('quickstart~Close');
|
|
100
|
+
expect(footerButtons.at(1).childAt(0).text()).toBe('quickstart~Back');
|
|
101
|
+
expect(footerButtons.at(2).childAt(0).text()).toBe('quickstart~Restart');
|
|
147
102
|
});
|
|
148
103
|
});
|
|
@@ -27,7 +27,7 @@ describe('QuickStartTaskHeader', () => {
|
|
|
27
27
|
expect(
|
|
28
28
|
wrapper.find(WizardNavItem).dive().find('[data-test-id="quick-start-task-subtitle"]').props()
|
|
29
29
|
.children,
|
|
30
|
-
).toEqual(
|
|
30
|
+
).toEqual(props.subtitle);
|
|
31
31
|
});
|
|
32
32
|
it('should not render subtitle if task is not active', () => {
|
|
33
33
|
wrapper = shallow(<QuickStartTaskHeader {...props} isActiveTask={false} />);
|
|
@@ -35,11 +35,8 @@ describe('QuickStartTaskReview', () => {
|
|
|
35
35
|
|
|
36
36
|
it('should render task help in markdown when task status is failed', () => {
|
|
37
37
|
wrapper = shallow(<QuickStartTaskReview {...props} />);
|
|
38
|
-
expect(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
.at(1)
|
|
42
|
-
.props().content,
|
|
43
|
-
).toEqual(props.review.failedTaskHelp);
|
|
38
|
+
expect(wrapper.find(QuickStartMarkdownView).at(1).props().content).toEqual(
|
|
39
|
+
props.review.failedTaskHelp,
|
|
40
|
+
);
|
|
44
41
|
});
|
|
45
42
|
});
|
|
@@ -57,12 +57,9 @@ describe('QuickStartTasks', () => {
|
|
|
57
57
|
taskNumber={2}
|
|
58
58
|
/>,
|
|
59
59
|
);
|
|
60
|
-
expect(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
.at(0)
|
|
64
|
-
.props().content,
|
|
65
|
-
).toEqual(props.tasks[2].description);
|
|
60
|
+
expect(wrapper.find(QuickStartMarkdownView).at(0).props().content).toEqual(
|
|
61
|
+
props.tasks[2].description,
|
|
62
|
+
);
|
|
66
63
|
});
|
|
67
64
|
|
|
68
65
|
it('should render review when task is active and in Review state', () => {
|
package/src/styles/_base.scss
CHANGED
|
@@ -1,51 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
.pfext-quick-start-panel-content__body {
|
|
4
|
-
dl {
|
|
5
|
-
margin: 0px; }
|
|
6
|
-
|
|
7
|
-
// match pf4 styling / table col head styling
|
|
8
|
-
dt {
|
|
9
|
-
font-weight: var(--pf-t--global--font--weight--body--bold); }
|
|
10
|
-
|
|
11
|
-
dd {
|
|
12
|
-
margin-bottom: 20px; }
|
|
13
|
-
|
|
14
|
-
dd:last-child {
|
|
15
|
-
margin-bottom: 0px; }
|
|
16
|
-
|
|
17
|
-
input[type="number"] {
|
|
18
|
-
-webkit-appearance: textfield;
|
|
19
|
-
appearance: textfield;
|
|
20
|
-
max-width: 100px;
|
|
21
|
-
&::-webkit-inner-spin-button,
|
|
22
|
-
&::-webkit-outer-spin-button {
|
|
23
|
-
-webkit-appearance: none;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
input[type="radio"] {
|
|
28
|
-
margin-right: 7px;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.pf-v6-c-list {
|
|
32
|
-
--pf-v6-c-list--PaddingLeft: 20px;
|
|
33
|
-
}
|
|
1
|
+
.pfext-quick-start-panel {
|
|
2
|
+
--pf-v6-c-drawer__panel--PaddingBlockStart: 0;
|
|
34
3
|
}
|
|
35
4
|
|
|
36
|
-
// drawer
|
|
37
|
-
.pfext-quick-start-panel-content__header,
|
|
38
|
-
.pfext-quick-start-panel-content__body,
|
|
39
|
-
// catalog gallery wrapper
|
|
40
|
-
.pfext-page-layout__content,
|
|
41
|
-
// catalog item prereq popover
|
|
42
5
|
.pfext-popover__base {
|
|
43
6
|
ul {
|
|
44
|
-
list-style-type:
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
input[type='radio'],
|
|
48
|
-
input[type='checkbox'] {
|
|
49
|
-
margin-top: 1px !important;
|
|
7
|
+
list-style-type: var(--pf-t--global--list-style);
|
|
50
8
|
}
|
|
51
9
|
}
|
package/src/styles/style.scss
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
@import '@patternfly/patternfly/sass-utilities';
|
|
2
2
|
@import './legacy-bootstrap/variables';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
// @import './dark-custom-override';
|
|
6
|
-
|
|
7
|
-
// // React Components
|
|
8
|
-
// @import '../ConsoleInternal/**/*.scss';
|
|
9
|
-
// @import '../ConsoleShared/**/*.scss';
|
|
4
|
+
@import './base';
|
|
10
5
|
|
|
11
6
|
// legacy bootstrap typography styles for markdown content
|
|
12
7
|
@import './legacy-bootstrap.scss';
|
|
@@ -22,9 +22,8 @@ export const HelpTopicContextDefaults = {
|
|
|
22
22
|
loading: false,
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
export const HelpTopicContext =
|
|
26
|
-
HelpTopicContextDefaults
|
|
27
|
-
);
|
|
25
|
+
export const HelpTopicContext =
|
|
26
|
+
React.createContext<HelpTopicContextValues>(HelpTopicContextDefaults);
|
|
28
27
|
|
|
29
28
|
export const useValuesForHelpTopicContext = (
|
|
30
29
|
value: HelpTopicContextValues = {},
|
|
@@ -152,12 +152,8 @@ export const useValuesForQuickStartContext = (
|
|
|
152
152
|
});
|
|
153
153
|
};
|
|
154
154
|
const findResource = useCallback(
|
|
155
|
-
(resource: string, count?: number) =>
|
|
156
|
-
|
|
157
|
-
count !== undefined ? { count } : null,
|
|
158
|
-
resourceBundle,
|
|
159
|
-
language,
|
|
160
|
-
),
|
|
155
|
+
(resource: string, count?: number) =>
|
|
156
|
+
getResource(resource, count !== undefined ? { count } : null, resourceBundle, language),
|
|
161
157
|
[resourceBundle, language],
|
|
162
158
|
);
|
|
163
159
|
const [loading, setLoading] = React.useState(combinedValue.loading);
|
|
@@ -420,9 +416,10 @@ export const useValuesForQuickStartContext = (
|
|
|
420
416
|
|
|
421
417
|
const activeQuickStartState = allQuickStartStates?.[activeQuickStartID] ?? {};
|
|
422
418
|
|
|
423
|
-
const getQuickStartForId = useCallback(
|
|
424
|
-
allQuickStartStates,
|
|
425
|
-
|
|
419
|
+
const getQuickStartForId = useCallback(
|
|
420
|
+
(id: string) => allQuickStartStates[id],
|
|
421
|
+
[allQuickStartStates],
|
|
422
|
+
);
|
|
426
423
|
|
|
427
424
|
return {
|
|
428
425
|
allQuickStarts: quickStarts,
|
|
@@ -469,7 +466,7 @@ export const QuickStartContextProvider: React.FC<{
|
|
|
469
466
|
children: React.ReactNode;
|
|
470
467
|
value: QuickStartContextValues;
|
|
471
468
|
}> = ({ children, value }) => (
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
469
|
+
<QuickStartContext.Provider value={useValuesForQuickStartContext(value)}>
|
|
470
|
+
{children}
|
|
471
|
+
</QuickStartContext.Provider>
|
|
472
|
+
);
|
|
@@ -69,5 +69,5 @@ export interface QuickStartExternal {
|
|
|
69
69
|
|
|
70
70
|
export interface QuickStartType {
|
|
71
71
|
text: string;
|
|
72
|
-
color?: '
|
|
72
|
+
color?: 'green' | 'purple' | 'grey' | 'blue' | 'orange' | 'red' | 'teal' | 'orangered' | 'yellow';
|
|
73
73
|
}
|
|
@@ -16,7 +16,8 @@ export const getTaskStatusKey = (taskNumber: number): string => `taskStatus${tas
|
|
|
16
16
|
export const getQuickStartStatusCount = (
|
|
17
17
|
allQuickStartStates: AllQuickStartStates,
|
|
18
18
|
quickStarts: QuickStart[],
|
|
19
|
-
): Record<QuickStartStatus, number> =>
|
|
19
|
+
): Record<QuickStartStatus, number> =>
|
|
20
|
+
quickStarts.reduce(
|
|
20
21
|
(totals, item) => {
|
|
21
22
|
totals[getQuickStartStatus(allQuickStartStates, item.metadata.name)]++;
|
|
22
23
|
return totals;
|
|
@@ -80,7 +81,8 @@ export const filterQuickStarts = (
|
|
|
80
81
|
);
|
|
81
82
|
};
|
|
82
83
|
|
|
83
|
-
export const camelize = (str: string) =>
|
|
84
|
+
export const camelize = (str: string) =>
|
|
85
|
+
str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function (match, index) {
|
|
84
86
|
if (+match === 0) {
|
|
85
87
|
return '';
|
|
86
88
|
} // or if (/\s+/.test(match)) for white spaces
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
.pfext-icon-and-text {
|
|
2
|
-
align-items: baseline;
|
|
3
|
-
display: flex;
|
|
4
|
-
|
|
5
|
-
// fix bug where concurrent .pf-v6-c-label are misaligned vertically
|
|
6
|
-
.pf-v6-c-label__icon & {
|
|
7
|
-
display: block;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.pfext-icon-and-text__icon {
|
|
12
|
-
flex-shrink: 0;
|
|
13
|
-
margin-right: 5px;
|
|
14
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
.pfext-markdown-view {
|
|
2
|
-
&.is-empty {
|
|
3
|
-
color: #999;
|
|
4
|
-
}
|
|
5
|
-
table {
|
|
6
|
-
display: block;
|
|
7
|
-
margin-bottom: 11.5px;
|
|
8
|
-
overflow-x: auto;
|
|
9
|
-
}
|
|
10
|
-
td,
|
|
11
|
-
th {
|
|
12
|
-
border-bottom: 1px solid #ededed;
|
|
13
|
-
padding: 10px;
|
|
14
|
-
vertical-align: top;
|
|
15
|
-
}
|
|
16
|
-
th {
|
|
17
|
-
padding-top: 0;
|
|
18
|
-
}
|
|
19
|
-
}
|