提交 81a95844 authored 作者: 王鹏飞's avatar 王鹏飞

refactor(admin): use AppList for sensitive words

上级 da3f36f6
import { useState } from 'react'
export function useSensitiveList() { const [page, setPage] = useState(1); const [pageSize, setPageSize] = useState(10); return { page, pageSize, setPage, setPageSize } }
import { useCallback, useEffect, useRef, useState } from "react";
import { getList } from "./api";
import { buildSensitiveQuery } from "./query";
export function useSensitiveList() {
const [filters, setFilters] = useState<{ word_name?: string }>({});
const [applied, setApplied] = useState<{ word_name?: string }>({});
const [page, setPage] = useState(1);
const [pageSize, setPageSize] = useState(10);
const [rows, setRows] = useState<any[]>([]);
const [total, setTotal] = useState(0);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<Error | null>(null);
const last = useRef(buildSensitiveQuery({ page: 1, pageSize: 10 }));
const load = useCallback(async (query: any) => {
last.current = query; setLoading(true); setError(null);
try { const result: any = await getList(query); if (!result || result instanceof Error) throw new Error("请求失败"); setRows(result.list || []); setTotal(result.total || 0); }
catch (cause) { setError(cause instanceof Error ? cause : new Error("请求失败")); }
finally { setLoading(false); }
}, []);
useEffect(() => { void load(last.current); }, [load]);
const run = (nextPage: number, nextPageSize: number, nextFilters: typeof filters) => void load(buildSensitiveQuery({ page: nextPage, pageSize: nextPageSize, filters: nextFilters }));
const search = () => { setApplied(filters); setPage(1); run(1, pageSize, filters); };
return { filters, setFilters, page, pageSize, rows, total, loading, error, search,
reset: () => { setFilters({}); setApplied({}); setPage(1); run(1, pageSize, {}); },
refresh: () => { setApplied(filters); run(page, pageSize, filters); }, retry: () => void load(last.current), reloadFirst: search,
changePage: (nextPage: number) => { setPage(nextPage); run(nextPage, pageSize, applied); },
changePageSize: (nextPageSize: number) => { setPage(1); setPageSize(nextPageSize); run(1, nextPageSize, applied); },
};
}
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论