import React, { memo, useEffect, useState, useRef, useLayoutEffect, useCallback } from 'react'; import { useActions, useStoreState } from 'm/store'; import Button from 'c/Button'; import { FixedSizeList as List, areEqual } from 'react-window'; import ContentHeader from 'c/ContentHeader'; import Rule from 'c/Rule'; import RuleSearch from 'c/RuleSearch'; import useRemainingViewPortHeight from '../hooks/useRemainingViewPortHeight'; import { getRules, fetchRules, fetchRulesOnce } from 'd/rules'; import s0 from './Rules.module.scss'; const paddingBottom = 30; const mapStateToProps = s => ({ rules: getRules(s) }); const actions = { fetchRules, fetchRulesOnce }; function itemKey(index, data) { const item = data[index]; return item.id; } const Row = memo(({ index, style, data }) => { const r = data[index]; return (