Skip to content

Commit ccfb137

Browse files
authored
Merge pull request #224 from data-driven-forms/docs-fixed-sticky-content
Use sticky table of contents in docs
2 parents 83200b8 + 90dc677 commit ccfb137

File tree

3 files changed

+38
-21
lines changed

3 files changed

+38
-21
lines changed

packages/react-renderer-demo/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@
4646
"react-ace": "^6.3.2",
4747
"react-copy-to-clipboard": "^5.0.1",
4848
"react-dom": "^16.10.2",
49-
"react-router-dom": "^5.0.1"
49+
"react-router-dom": "^5.0.1",
50+
"react-sticky-box": "^0.8.0"
5051
},
5152
"devDependencies": {
5253
"@babel/cli": "^7.2.0",

packages/react-renderer-demo/src/app/src/helpers/list-of-contents.js

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { Fragment, useEffect, useState } from 'react';
1+
import React, { useEffect, useState } from 'react';
22
import clsx from 'clsx';
33
import PropTypes from 'prop-types';
44
import { makeStyles } from '@material-ui/core/styles';
@@ -7,6 +7,7 @@ import ListItem from '@material-ui/core/ListItem';
77
import ListItemText from '@material-ui/core/ListItemText';
88
import Typography from '@material-ui/core/Typography';
99
import { useRouter } from 'next/router';
10+
import StickyBox from 'react-sticky-box';
1011

1112
const reqSource = require.context(
1213
'!raw-loader!@docs/pages',
@@ -58,7 +59,6 @@ ListHeader.propTypes = {
5859

5960
const useStyles = makeStyles(theme => ({
6061
fixedContainer: {
61-
position: 'fixed',
6262
paddingLeft: 16,
6363
},
6464
listItem: {
@@ -129,23 +129,25 @@ const ListOfContents = ({ file }) => {
129129
const regex = /^###?#? .*/gm;
130130
const found = text.match(regex) || [];
131131
return (
132-
<div className={ classes.fixedContainer }>
133-
<Typography className={ classes.contentHeader } component="h3">Content</Typography>
134-
<List dense>
135-
{ found.map(text =>(
136-
<ListItem
137-
onClick={ () => setActive(headerToId(text)) }
138-
className={ clsx(classes.listItem, { [classes.listItemActive]: headerToId(text) === activeItem }) }
139-
key={ text }
140-
>
141-
<ListItemText
142-
className={ classes.listItemText }
143-
primary={ <ListHeader text={ text } /> }
144-
/>
145-
</ListItem>
146-
)) }
147-
</List>
148-
</div>
132+
<StickyBox offsetTop={ 96 } offsetBottom={ 20 }>
133+
<div className={ classes.fixedContainer }>
134+
<Typography className={ classes.contentHeader } component="h3">Content</Typography>
135+
<List dense>
136+
{ found.map(text =>(
137+
<ListItem
138+
onClick={ () => setActive(headerToId(text)) }
139+
className={ clsx(classes.listItem, { [classes.listItemActive]: headerToId(text) === activeItem }) }
140+
key={ text }
141+
>
142+
<ListItemText
143+
className={ classes.listItemText }
144+
primary={ <ListHeader text={ text } /> }
145+
/>
146+
</ListItem>
147+
)) }
148+
</List>
149+
</div>
150+
</StickyBox>
149151
);
150152
};
151153

yarn.lock

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,7 @@
932932
dependencies:
933933
regenerator-runtime "^0.13.2"
934934

935-
"@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3":
935+
"@babel/runtime@^7.1.2", "@babel/runtime@^7.1.5", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.6.3":
936936
version "7.7.2"
937937
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a"
938938
integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==
@@ -16458,6 +16458,15 @@ react-select@^3.0.4:
1645816458
react-input-autosize "^2.2.2"
1645916459
react-transition-group "^2.2.1"
1646016460

16461+
react-sticky-box@^0.8.0:
16462+
version "0.8.0"
16463+
resolved "https://registry.yarnpkg.com/react-sticky-box/-/react-sticky-box-0.8.0.tgz#1c191936af8f5420087b703ec6da4ef46060076c"
16464+
integrity sha512-al7fY+VzTKBgVrn14l21jQfhuG582Z6FD8tVbWVQDDqzcjLmUrFb+ljG2phxHhRRazg64L3yH4nOKjn78PZmag==
16465+
dependencies:
16466+
"@babel/runtime" "^7.1.5"
16467+
prop-types "^15.6.2"
16468+
resize-observer-polyfill "^1.5.1"
16469+
1646116470
react-test-renderer@^16.0.0-0:
1646216471
version "16.11.0"
1646316472
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.11.0.tgz#72574566496462c808ac449b0287a4c0a1a7d8f8"
@@ -17068,6 +17077,11 @@ reserved-words@^0.1.2:
1706817077
resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1"
1706917078
integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=
1707017079

17080+
resize-observer-polyfill@^1.5.1:
17081+
version "1.5.1"
17082+
resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
17083+
integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
17084+
1707117085
resolve-cwd@^2.0.0:
1707217086
version "2.0.0"
1707317087
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"

0 commit comments

Comments
 (0)