import useSWR from "swr"; import { useState, useMemo } from "react"; import { useTranslation } from "react-i18next"; import { Virtuoso } from "react-virtuoso"; import { Box } from "@mui/material"; import { getRules } from "@/services/api"; import { BaseEmpty, BasePage } from "@/components/base"; import RuleItem from "@/components/rule/rule-item"; import { ProviderButton } from "@/components/rule/provider-button"; import { useCustomTheme } from "@/components/layout/use-custom-theme"; import { BaseSearchBox } from "@/components/base/base-search-box"; const RulesPage = () => { const { t } = useTranslation(); const { data = [] } = useSWR("getRules", getRules); const { theme } = useCustomTheme(); const isDark = theme.palette.mode === "dark"; const [match, setMatch] = useState(() => (_: string) => true); const rules = useMemo(() => { return data.filter((item) => match(item.payload)); }, [data, match]); return ( } > setMatch(() => match)} /> {rules.length > 0 ? ( ( )} followOutput={"smooth"} /> ) : ( )} ); }; export default RulesPage;