/** * 删除全部数据 hook,获取可删除分类并提交删除申请。 */ import { useCallback } from 'react'; import { fetchDeleteAllData, submitDeleteData } from '../api'; import type { DeleteAllData } from '../types'; import { useAsyncData } from './useAsyncData'; export interface DeleteAllDataState { data: DeleteAllData | null; loading: boolean; error: Error | null; refresh: () => void; submit: (categoryIds: string[]) => Promise<{ success: boolean; message: string }>; } export function useDeleteAllData(): DeleteAllDataState { const fetcher = useCallback(async (): Promise => fetchDeleteAllData(), []); const { data, loading, error, refresh } = useAsyncData(fetcher); const submit = useCallback(async (categoryIds: string[]) => { try { return await submitDeleteData(categoryIds); } catch (err) { console.error('[useDeleteAllData] submit error', err); return { success: false, message: '提交失败,请稍后重试' }; } }, []); return { data: data ?? null, loading, error, refresh, submit }; }