diff options
author | Eugene Sokolov <eug-vs@keemail.me> | 2020-10-09 00:30:59 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-09 00:30:59 +0300 |
commit | a5d0f3edcd5478c81262524cbfef8273a065df36 (patch) | |
tree | 48725733e1650fb11f59e4e8dd4f752950a26f72 /src/components/PollsList/PollsList.tsx | |
parent | bdb4d194307c9755c2083c1a11bb876abebcb6de (diff) | |
parent | 8e9245d18ba591e93dd7dd1de9a271d0b51941a7 (diff) | |
download | which-ui-a5d0f3edcd5478c81262524cbfef8273a065df36.tar.gz |
Merge pull request #103 from which-ecosystem/feat/description
Add description to Poll Model
Diffstat (limited to 'src/components/PollsList/PollsList.tsx')
-rw-r--r-- | src/components/PollsList/PollsList.tsx | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/components/PollsList/PollsList.tsx b/src/components/PollsList/PollsList.tsx index 039639d..1ad7763 100644 --- a/src/components/PollsList/PollsList.tsx +++ b/src/components/PollsList/PollsList.tsx @@ -1,9 +1,10 @@ -import React, { useCallback, useState, useMemo } from 'react'; +import React, { useCallback, useState, useMemo, useEffect } from 'react'; import { WindowScroller, AutoSizer, List, - InfiniteLoader + InfiniteLoader, + CellMeasurerCache } from 'react-virtualized'; import _ from 'lodash'; import { Poll } from 'which-types'; @@ -15,17 +16,27 @@ interface PropTypes { mutate: (polls: Poll[], refetch: boolean) => void; } +const cache = new CellMeasurerCache({ + fixedWidth: true +}); + const PAGE_SIZE = 10; const PollsList: React.FC<PropTypes> = ({ polls, mutate }) => { const [displayCount, setDisplayCount] = useState<number>(PAGE_SIZE); - const rowRenderer = useCallback(({ index, style, key }) => ( + useEffect(() => { + cache.clearAll(); + }, [polls]); + + const rowRenderer = useCallback(({ index, style, key, parent }) => ( <RenderItem polls={polls} mutate={mutate} index={index} style={style} + cache={cache} + parent={parent} key={key} _key={key} /> @@ -68,7 +79,7 @@ const PollsList: React.FC<PropTypes> = ({ polls, mutate }) => { isScrolling={isScrolling} onScroll={onChildScroll} rowCount={rowCount} - rowHeight={550} + rowHeight={cache.rowHeight} rowRenderer={rowRenderer} scrollTop={scrollTop} width={width} @@ -76,6 +87,7 @@ const PollsList: React.FC<PropTypes> = ({ polls, mutate }) => { overscanRowCount={2} onRowsRendered={onRowsRendered} ref={ref} + deferredMeasurementCache={cache} /> )} </InfiniteLoader> |