import { memo, useEffect, useMemo, useState } from "react"; import { Classes, NonIdealState, Spinner, Switch } from "@blueprintjs/core"; import AuxiliaryDialog from "Components/AuxiliaryDialog"; import { ListWrapper, Pagination, Toolbar } from "Components/DataList"; import LogEntry from "./LogEntry"; import { ZoteroRoamLog } from "../../api/logging"; import { useBool, usePagination } from "@hooks"; import { CustomClasses } from "../../constants"; import "./_index.sass"; const itemsPerPage = 20; function LoggerList({ items }: { items: ZoteroRoamLog[]}){ const [showAllEntries, { toggle: toggleShowAll }] = useBool(false); const { currentPage, pageLimits, setCurrentPage } = usePagination({ itemsPerPage }); const visibleItems = useMemo(() => { return showAllEntries ? items : items.filter(it => it.level == "error"); }, [items, showAllEntries]); useEffect(() => { setCurrentPage(1); }, [items, visibleItems, setCurrentPage]); return