import React from 'react'; import { Poll } from 'which-types'; import { WindowScroller, AutoSizer, List } from 'react-virtualized'; import PollCard from '../PollCard/PollCard'; interface PropTypes { polls: Poll[]; mutate: (polls: Poll[], refetch: boolean) => void; } interface RenderPropTypes { index: number; key: string; style: React.CSSProperties; } const PollsList: React.FC = ({ polls, mutate }) => { const RenderItem: React.FC = ({ index, style, key }) => { const poll = polls[index]; const setPoll = (newPoll: Poll) => { const newPolls = [...polls]; newPolls[index] = newPoll; // Force-update list-size so everything re-renders mutate([], false); mutate(newPolls, false); }; return ( // To re-render on list resize, add this info to key
); }; return ( {({ height, isScrolling, registerChild, onChildScroll, scrollTop }) => ( {({ width }) => (
)}
)}
); }; export default PollsList;