Skip to content

Commit 336bc95

Browse files
Hyperkid123rvsia
authored andcommitted
Added new navigation structure to docs.
1 parent ebd31f1 commit 336bc95

File tree

12 files changed

+328
-102
lines changed

12 files changed

+328
-102
lines changed

packages/react-renderer-demo/src/components/layout.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MenuIcon from '@material-ui/icons/Menu';
1313
import SvgIcon from '@material-ui/core/SvgIcon';
1414
import { useRouter } from 'next/router';
1515

16-
import { flatSchema } from './navigation/schema';
16+
import { flatSchema } from './navigation/schemas/schema';
1717
import GhIcon from './common/gh-svg-icon';
1818
import Navigation from './navigation/app-navigation';
1919
import MenuContext from './navigation/menu-context';

packages/react-renderer-demo/src/components/navigation/app-navigation.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import ChevronLeftIcon from '@material-ui/icons/ChevronLeft';
1010

1111
import { navStyles } from './nav-styles';
1212
import MenuRenderer from './menu-renderer';
13-
import schema from './schema';
13+
import schema from './schemas/schema';
1414

1515
const useStyles = makeStyles(navStyles);
1616

packages/react-renderer-demo/src/components/navigation/documentation-pages.js

Lines changed: 0 additions & 78 deletions
This file was deleted.

packages/react-renderer-demo/src/components/navigation/mapper.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import PropTypes from 'prop-types';
44
import List from '@material-ui/core/List';
55
import ListItem from '@material-ui/core/ListItem';
66
import ListItemText from '@material-ui/core/ListItemText';
7+
import ListSubheader from '@material-ui/core/ListSubheader';
78
import Typography from '@material-ui/core/Typography';
89
import ExpandLess from '@material-ui/icons/ExpandLess';
910
import ExpandMore from '@material-ui/icons/ExpandMore';
@@ -59,7 +60,7 @@ const FinalList = ({ title, level, link, fields, previousLinks = [], renderItems
5960
<List key={title} component="nav">
6061
{title && (
6162
<ListItem button onClick={openable ? closeNav : null} className={classes.listItem}>
62-
<ListItemText primary={title} />
63+
<ListItemText primary={title} className={classes.listItemText} />
6364
{openable ? isOpen ? <ExpandLess /> : <ExpandMore /> : null}
6465
</ListItem>
6566
)}
@@ -72,9 +73,12 @@ const FinalList = ({ title, level, link, fields, previousLinks = [], renderItems
7273
);
7374
};
7475

76+
const SubHeader = ({ title }) => <ListSubheader>{title}</ListSubheader>;
77+
7578
const Mapper = {
7679
Wrapper: FinalList,
77-
Item
80+
Item,
81+
SubHeader
7882
};
7983

8084
export default Mapper;

packages/react-renderer-demo/src/components/navigation/menu-renderer.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,18 @@ const renderItems = (items, level = 0, previousLinks = ['']) => {
3939

4040
const href = createLink(...previousLinks, link || component);
4141

42+
if (props.subHeader) {
43+
return <Mapper.SubHeader key={title} title={title} />;
44+
}
45+
4246
return <Mapper.Item href={href} level={level} key={`${link || component}-${linkText}`} linkText={linkText} component={component} {...props} />;
4347
};
4448

4549
const MenuRenderer = ({ schema }) => {
4650
return <React.Fragment>{renderItems(schema)}</React.Fragment>;
4751
};
4852

49-
const searchFunction = (linkText, value) =>
53+
const searchFunction = (linkText = '', value) =>
5054
linkText
5155
.toLowerCase()
5256
.replace(/ /g, '')

packages/react-renderer-demo/src/components/navigation/nav-styles.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,10 @@ export const navStyles = (theme) => ({
4848
width: '100%',
4949
paddingLeft: 16,
5050
paddingRight: 16
51+
},
52+
listItemText: {
53+
'&>span': {
54+
fontSize: 14
55+
}
5156
}
5257
});
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const schemaHooks = [
2+
{
3+
component: 'use-field-api',
4+
linkText: 'Use field api'
5+
},
6+
{
7+
component: 'use-form-api',
8+
linkText: 'Use form api'
9+
}
10+
];
11+
12+
export default schemaHooks;
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
const mappersSchema = [
2+
{
3+
subHeader: true,
4+
noRoute: true,
5+
title: 'Component mapper'
6+
},
7+
{
8+
linkText: 'Custom mapper',
9+
link: 'custom-mapper'
10+
},
11+
{
12+
linkText: 'blueprint-mapper',
13+
link: 'Blueprint mapper'
14+
},
15+
{
16+
linkText: 'mui-mapper',
17+
link: 'Material UI mapper'
18+
},
19+
{
20+
linkText: 'pf3-mapper',
21+
link: 'PF3 mapper'
22+
},
23+
{
24+
linkText: 'pf4-mapper',
25+
link: 'PF4 mapper'
26+
},
27+
{
28+
linkText: 'suir-mapper',
29+
link: 'Semantic UI mapper'
30+
},
31+
{
32+
subHeader: true,
33+
noRoute: true,
34+
title: 'Mapper components'
35+
},
36+
/**
37+
* Here will be component definitions
38+
*/
39+
{
40+
subHeader: true,
41+
noRoute: true,
42+
title: 'Schema mappers'
43+
},
44+
{
45+
linkText: 'action-mapper',
46+
link: 'Actio mapper'
47+
},
48+
{
49+
linkText: 'schema-validator-mapper ',
50+
link: 'Schema validator mapper'
51+
},
52+
{
53+
linkText: 'validator-mapper',
54+
link: 'Validator mapper'
55+
}
56+
];
57+
58+
export default mappersSchema;
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
const schemaRenderer = [
2+
{
3+
subHeader: true,
4+
title: 'Renderer',
5+
noRoute: true
6+
},
7+
{
8+
component: 'renderer',
9+
linkText: 'Renderer'
10+
},
11+
{
12+
component: 'form-template',
13+
linkText: 'Form template'
14+
},
15+
{
16+
subHeader: true,
17+
title: 'Form components',
18+
noRoute: true
19+
},
20+
{
21+
component: 'field-array',
22+
linkText: 'Field array'
23+
},
24+
{
25+
component: 'field-provider',
26+
linkText: 'Field provider'
27+
},
28+
{
29+
component: 'form',
30+
linkText: 'Form'
31+
},
32+
{
33+
component: 'form-spy',
34+
linkText: 'Form spy'
35+
}
36+
];
37+
38+
export default schemaRenderer;

packages/react-renderer-demo/src/components/navigation/schema.js renamed to packages/react-renderer-demo/src/components/navigation/schemas/schema.js

Lines changed: 58 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,43 @@
1-
import { baseExamples } from './examples-definitions';
2-
import { docs } from './documentation-pages';
3-
import { mappers } from './mappers';
1+
import { baseExamples } from '../examples-definitions';
2+
import { mappers } from '../mappers';
43
import flatMap from 'lodash/flatMap';
4+
import schemaRenderer from './renderer.schema';
5+
import schemaNav from './schema.schema';
6+
import schemaHooks from './hooks.schema';
7+
import mappersSchema from './mappers.schema';
58

69
const schema = [
710
{
8-
linkText: 'Form builder',
9-
link: 'live-editor'
11+
linkText: 'Installation',
12+
link: 'installation'
13+
},
14+
{
15+
title: 'Schema',
16+
noRoute: true,
17+
link: 'schema',
18+
fields: schemaNav
19+
},
20+
{
21+
title: 'Components',
22+
link: 'components',
23+
noRoute: true,
24+
fields: schemaRenderer
25+
},
26+
{
27+
title: 'Hooks',
28+
link: 'hooks',
29+
noRoute: true,
30+
fields: schemaHooks
1031
},
1132
{
12-
title: 'React form renderer',
13-
link: 'renderer',
33+
title: 'Mappers',
34+
link: 'mappers',
1435
noRoute: true,
15-
fields: docs
36+
fields: mappersSchema
37+
},
38+
{
39+
linkText: 'Form builder',
40+
link: 'live-editor'
1641
},
1742
{
1843
title: 'Component definitions',
@@ -30,6 +55,14 @@ const schema = [
3055
linkText: 'Testing',
3156
link: 'testing'
3257
},
58+
{
59+
linkText: 'Typescript',
60+
link: 'typescript'
61+
},
62+
{
63+
linkText: 'Development setup',
64+
link: 'dev-setup'
65+
},
3366
{
3467
linkText: 'Releases',
3568
link: 'releases'
@@ -66,6 +99,10 @@ export const flatSchema = flatMap(schema, (item) =>
6699
? [
67100
item,
68101
...item.fields.map((child) => {
102+
if (child.noRoute) {
103+
return undefined;
104+
}
105+
69106
child.link = child.link || child.component;
70107
return {
71108
...child,
@@ -74,16 +111,18 @@ export const flatSchema = flatMap(schema, (item) =>
74111
})
75112
]
76113
: [item]
77-
).reduce(
78-
(acc, curr, currentIndex, source) => [
79-
...acc,
80-
{
81-
...curr,
82-
prev: getPrevLink(curr, currentIndex, source),
83-
next: getNextLink(curr, currentIndex, source)
84-
}
85-
],
86-
[]
87-
);
114+
)
115+
.filter((link) => typeof link !== 'undefined')
116+
.reduce(
117+
(acc, curr, currentIndex, source) => [
118+
...acc,
119+
{
120+
...curr,
121+
prev: getPrevLink(curr, currentIndex, source),
122+
next: getNextLink(curr, currentIndex, source)
123+
}
124+
],
125+
[]
126+
);
88127

89128
export default schema;

0 commit comments

Comments
 (0)