diff options
author | Eugene Sokolov <eug-vs@keemail.me> | 2020-08-10 13:51:11 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-10 13:51:11 +0300 |
commit | 823c82383424616bc7c2562e2a763321edb6050c (patch) | |
tree | 1d5220d68ab8ebb392c87038f2fc24cc72b28775 /src/components/Feed | |
parent | 70d20b76f042a519e8e164279dfa31b5ce027d44 (diff) | |
parent | 78218c0f3427ad79de003ac59cffb99b08f0ae7d (diff) | |
download | which-ui-823c82383424616bc7c2562e2a763321edb6050c.tar.gz |
Merge pull request #74 from which-ecosystem/fetching
SWR feat. crazy refactor
Diffstat (limited to 'src/components/Feed')
-rw-r--r-- | src/components/Feed/Feed.tsx | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/src/components/Feed/Feed.tsx b/src/components/Feed/Feed.tsx deleted file mode 100644 index 03358da..0000000 --- a/src/components/Feed/Feed.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import React from 'react'; -import { Poll } from 'which-types'; -import { WindowScroller, AutoSizer, List } from 'react-virtualized'; -import CircularProgress from '@material-ui/core/CircularProgress'; -import { makeStyles } from '@material-ui/core'; -import PollCard from '../PollCard/PollCard'; - -interface PropTypes { - polls: Poll[]; -} - -interface RenderPropTypes { - index: number; - key: string; - style: React.CSSProperties; -} - -const useStyles = makeStyles(theme => ({ - loader: { - width: '100%', - textAlign: 'center', - marginTop: theme.spacing(10) - } -})); - -const Feed: React.FC<PropTypes> = ({ polls }) => { - const classes = useStyles(); - - - const RenderItem: React.FC<RenderPropTypes> = ({ index, style, key }) => { - const poll = polls[index]; - return ( - <div key={key} style={style}> - <PollCard initialPoll={poll} /> - </div> - ); - }; - - const loader = ( - <div className={classes.loader}> - <CircularProgress color="primary" style={{ margin: '0 auto' }} /> - </div> - ); - - const list = ( - <WindowScroller> - {({ - height, - isScrolling, - registerChild, - onChildScroll, - scrollTop - }) => ( - <AutoSizer disableHeight> - {({ width }) => ( - <div ref={registerChild}> - <List - autoHeight - height={height} - isScrolling={isScrolling} - onScroll={onChildScroll} - rowCount={polls.length} - rowHeight={550} - rowRenderer={RenderItem} - scrollTop={scrollTop} - width={width} - containerStyle={{ pointerEvents: 'auto' }} - overscanRowCount={1} - /> - </div> - )} - </AutoSizer> - )} - </WindowScroller> - ); - - return polls.length ? list : loader; -}; - -export default Feed; - |