Skip to content

Commit c8eb2ab

Browse files
committed
context setAllQuickStarts setter
1 parent ac40fa4 commit c8eb2ab

File tree

7 files changed

+67
-20
lines changed

7 files changed

+67
-20
lines changed

packages/dev/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"serve": "serve public"
1010
},
1111
"dependencies": {
12-
"@patternfly/quickstarts": "1.0.0-rc.13",
12+
"@patternfly/quickstarts": "1.0.0-rc.14",
1313
"@patternfly/react-core": "^4.101.3",
1414
"asciidoctor": "^2.2.1",
1515
"react": "^16.14.0",

packages/dev/src/CustomCatalog.tsx

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,34 @@ import {
2323
TextContent,
2424
ToolbarContent,
2525
} from '@patternfly/react-core';
26+
import { allQuickStarts as yamlQuickStarts } from "./quickstarts-data/quick-start-test-data";
27+
import { loadJSONQuickStarts } from "./quickstarts-data/mas-guides/quickstartLoader";
2628

2729
export const CustomCatalog: React.FC = () => {
28-
const { activeQuickStartID, allQuickStartStates, allQuickStarts, filter, setFilter } = React.useContext<QuickStartContextValues>(
30+
const { activeQuickStartID, allQuickStartStates, allQuickStarts, setAllQuickStarts, filter, setFilter } = React.useContext<QuickStartContextValues>(
2931
QuickStartContext,
3032
);
3133

34+
React.useEffect(() => {
35+
// callback on state change
36+
setFilteredQuickStarts(filterQuickStarts(
37+
allQuickStarts,
38+
filter.keyword,
39+
filter.status.statusFilters,
40+
allQuickStartStates,
41+
).sort(sortFnc),)
42+
}, [allQuickStarts]);
43+
3244
const sortFnc = (q1: QuickStart, q2: QuickStart) =>
3345
q1.spec.displayName.localeCompare(q2.spec.displayName);
34-
const initialFilteredQuickStarts = filterQuickStarts(
35-
allQuickStarts,
36-
filter.keyword,
37-
filter.status.statusFilters,
38-
allQuickStartStates,
39-
).sort(sortFnc);
46+
4047
const [filteredQuickStarts, setFilteredQuickStarts] = React.useState<QuickStart[]>(
41-
initialFilteredQuickStarts,
48+
filterQuickStarts(
49+
allQuickStarts,
50+
filter.keyword,
51+
filter.status.statusFilters,
52+
allQuickStartStates,
53+
).sort(sortFnc),
4254
);
4355

4456
const onSearchInputChange = (searchValue: string) => {
@@ -132,6 +144,15 @@ export const CustomCatalog: React.FC = () => {
132144
);
133145
};
134146

147+
// const load = async () => {
148+
// const masGuidesQuickstarts = await loadJSONQuickStarts("");
149+
// setAllQuickStarts(yamlQuickStarts.concat(masGuidesQuickstarts));
150+
// };
151+
152+
// const loadQuickStarts = () => {
153+
// load();
154+
// }
155+
135156
return (
136157
<>
137158
<QuickStartCatalogHeader title="Resources" />
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import React from 'react';
2+
import {
3+
QuickStartCatalogPage,
4+
QuickStartContextValues,
5+
QuickStartContext,
6+
} from '@patternfly/quickstarts';
7+
import { allQuickStarts as yamlQuickStarts } from './quickstarts-data/quick-start-test-data';
8+
import { loadJSONQuickStarts } from './quickstarts-data/mas-guides/quickstartLoader';
9+
10+
export const DefaultCatalog = () => {
11+
// const { setAllQuickStarts } = React.useContext<QuickStartContextValues>(QuickStartContext);
12+
// const load = async () => {
13+
// const masGuidesQuickstarts = await loadJSONQuickStarts('');
14+
// setAllQuickStarts(yamlQuickStarts.concat(masGuidesQuickstarts));
15+
// };
16+
17+
// const loadQuickStarts = () => {
18+
// load();
19+
// };
20+
return (
21+
<>
22+
{/* <button onClick={loadQuickStarts}>Load</button> */}
23+
<QuickStartCatalogPage
24+
showFilter
25+
hint="Learn how to create, import, and run applications with step-by-step instructions and tasks."
26+
/>
27+
</>
28+
);
29+
};

packages/dev/src/index.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,8 @@ import ReactDOM from "react-dom";
88
import { Route, BrowserRouter as Router, Switch } from "react-router-dom";
99
import './i18n/i18n';
1010
import App from "./App";
11-
import {
12-
LoadingBox,
13-
QuickStart,
14-
QuickStartCatalogPage,
15-
} from "@patternfly/quickstarts";
1611
import { Home } from "./Home";
12+
import { DefaultCatalog } from "./DefaultCatalog";
1713
import { CustomCatalog } from "./CustomCatalog";
1814

1915
ReactDOM.render(
@@ -26,10 +22,7 @@ ReactDOM.render(
2622
</Route>
2723
<Route exact path="/quickstarts">
2824
<App showCardFooters={false}>
29-
<QuickStartCatalogPage
30-
showFilter
31-
hint="Learn how to create, import, and run applications with step-by-step instructions and tasks."
32-
/>
25+
<DefaultCatalog />
3326
</App>
3427
</Route>
3528
<Route exact path="/custom-catalog">

packages/module/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@patternfly/quickstarts",
3-
"version": "1.0.0-rc.13",
3+
"version": "1.0.0-rc.14",
44
"description": "PatternFly quick starts",
55
"files": [
66
"dist"

packages/module/src/QuickStartCatalogPage.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import * as React from 'react';
22
import QuickStartCatalog from './catalog/QuickStartCatalog';
33
import { QuickStart } from './utils/quick-start-types';
44
import { filterQuickStarts } from './utils/quick-start-utils';
5-
import { QUICKSTART_SEARCH_FILTER_KEY, QUICKSTART_STATUS_FILTER_KEY } from './utils/const';
65
import { QuickStartContext, QuickStartContextValues } from './utils/quick-start-context';
76
import {
87
Button,

packages/module/src/utils/quick-start-context.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export type QuickStartContextValues = {
2525
activeQuickStartID?: string;
2626
allQuickStartStates?: AllQuickStartStates;
2727
activeQuickStartState?: QuickStartState;
28+
setAllQuickStarts?: React.Dispatch<React.SetStateAction<QuickStart[]>>;
2829
setActiveQuickStartID?: React.Dispatch<React.SetStateAction<string>>;
2930
setAllQuickStartStates?: React.Dispatch<React.SetStateAction<AllQuickStartStates>>;
3031
setActiveQuickStart?: (quickStartId: string, totalTasks?: number) => void;
@@ -62,6 +63,7 @@ export const QuickStartContextDefaults = {
6263
activeQuickStartID: '',
6364
allQuickStartStates: {},
6465
activeQuickStartState: {},
66+
setAllQuickStarts: () => {},
6567
setActiveQuickStart: () => {},
6668
startQuickStart: () => {},
6769
restartQuickStart: () => {},
@@ -92,6 +94,7 @@ export const QuickStartContextProvider: React.FC<{
9294
...QuickStartContextDefaults,
9395
...value
9496
}
97+
const [quickStarts, setQuickStarts] = React.useState(combinedValue.allQuickStarts);
9598
const [resourceBundle, setResourceBundle] = React.useState({
9699
...en,
97100
...combinedValue.resourceBundle
@@ -337,6 +340,8 @@ export const QuickStartContextProvider: React.FC<{
337340

338341
return <QuickStartContext.Provider value={{
339342
...combinedValue,
343+
allQuickStarts: quickStarts,
344+
setAllQuickStarts: setQuickStarts,
340345
resourceBundle,
341346
setResourceBundle: changeResourceBundle,
342347
lng,

0 commit comments

Comments
 (0)