Skip to content

Commit e36a36e

Browse files
committed
Added css swapping on mapper docs change.
1 parent c3a5aaf commit e36a36e

File tree

2 files changed

+40
-6
lines changed

2 files changed

+40
-6
lines changed

packages/react-renderer-demo/src/app/src/components/code-example.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import Tooltip from '@material-ui/core/Tooltip';
1919

2020
import GhIcon from './common/gh-svg-icon';
2121
import CodesandboxIcon from './common/code-sandbox-svg-icon';
22+
import { getPrefix } from '../helpers/scoped-links';
23+
import { useRouter } from 'next/router';
2224

2325
const CodeEditor = dynamic(import('./code-editor'), {
2426
ssr: false
@@ -57,6 +59,12 @@ const useStyles = makeStyles((theme) => ({
5759
},
5860
expansionPanelSummary: {
5961
padding: 0
62+
},
63+
pf4: {
64+
padding: 32,
65+
'& form': {
66+
width: '100%'
67+
}
6068
}
6169
}));
6270

@@ -144,6 +152,8 @@ const getPayload = (type, code, sourceFiles = {}) =>
144152

145153
const CodeExample = ({ source, mode, mapper, additionalSources }) => {
146154
const classes = useStyles();
155+
const router = useRouter();
156+
const activeScope = getPrefix(router.pathname);
147157
const codeSource = reqSource(`./${source}.js`).default;
148158
let Component;
149159
if (mode === 'preview') {
@@ -209,7 +219,7 @@ const CodeExample = ({ source, mode, mapper, additionalSources }) => {
209219
</Grid>
210220
{Component && (
211221
<Grid className={classes.formContainer} item xs={12}>
212-
<Paper className={classes.componentPanel}>
222+
<Paper className={clsx(classes.componentPanel, classes[activeScope])}>
213223
<Component />
214224
</Paper>
215225
</Grid>

packages/react-renderer-demo/src/app/src/components/mapper-menu.js

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState, Fragment } from 'react';
1+
import React, { useState, useEffect } from 'react';
22
import Button from '@material-ui/core/Button';
33
import Checkbox from '@material-ui/core/Checkbox';
44
import Menu from '@material-ui/core/Menu';
@@ -8,6 +8,10 @@ import Link from 'next/link';
88
import { makeStyles } from '@material-ui/core/styles';
99
import { getScopedLink, getPrefix } from '../helpers/scoped-links';
1010

11+
const links = {
12+
pf4: `<link class="pf4" href="https://cdn.jsdelivr.net/npm/@patternfly/[email protected]/patternfly.min.css" rel="stylesheet" />`
13+
};
14+
1115
const useStyles = makeStyles((theme) => ({
1216
menuTrigger: {
1317
color: '#fff'
@@ -25,33 +29,53 @@ const MapperMenu = () => {
2529
const [anchorEl, setAnchorEl] = useState(null);
2630
const router = useRouter();
2731
const classes = useStyles();
32+
const activeScope = getPrefix(router.pathname);
2833
const handleClick = (event) => {
2934
setAnchorEl(event.currentTarget);
3035
};
3136

32-
const handleClose = () => {
37+
const applyMapperStyle = (mapper) => {
38+
const head = document.head;
39+
const mapperLink = head.getElementsByClassName(activeScope)[0];
40+
if (mapperLink) {
41+
head.removeChild(mapperLink);
42+
}
43+
44+
if (mapper !== 'mui') {
45+
let newLink = document.createElement('div');
46+
newLink.innerHTML = links[mapper];
47+
newLink = newLink.firstChild;
48+
head.appendChild(newLink);
49+
}
50+
};
51+
52+
useEffect(() => {
53+
applyMapperStyle(activeScope);
54+
}, []);
55+
56+
const handleClose = (mapper) => {
57+
applyMapperStyle(mapper);
3358
setAnchorEl(null);
3459
};
3560

3661
const muiLink = getScopedLink(router.pathname, 'mui');
3762
const pf4Link = getScopedLink(router.pathname, 'pf4');
38-
const activeScope = getPrefix(router.pathname);
3963

4064
return (
4165
<div>
4266
<Button aria-controls="simple-menu" aria-haspopup="true" className={classes.menuTrigger} onClick={handleClick}>
4367
Mapper: {activeScope}
4468
</Button>
4569
<Menu id="simple-menu" anchorEl={anchorEl} open={Boolean(anchorEl)} onClose={handleClose}>
46-
<MenuItem className={classes.menuItem} onClick={handleClose} selected={activeScope === 'mui'}>
70+
<MenuItem className={classes.menuItem} onClick={() => handleClose('mui')} selected={activeScope === 'mui'}>
4771
<Link href={muiLink}>
4872
<a href={muiLink} className={classes.scopeLink}>
4973
<Checkbox checked={activeScope === 'mui'} />
5074
Material UI
5175
</a>
5276
</Link>
5377
</MenuItem>
54-
<MenuItem className={classes.menuItem} onClick={handleClose} selected={activeScope === 'pf4'}>
78+
<MenuItem className={classes.menuItem} onClick={() => handleClose('pf4')} selected={activeScope === 'pf4'}>
5579
<Link href={pf4Link}>
5680
<a href={pf4Link} className={classes.scopeLink}>
5781
<Checkbox checked={activeScope === 'pf4'} />

0 commit comments

Comments
 (0)