2026-08-05 11:11:10 +07:00
|
|
|
import useSWR from "swr";
|
|
|
|
|
import { moderationApi } from "@/lib/api";
|
2026-08-07 10:44:03 +07:00
|
|
|
import type { ModerationAction, ModerationStats } from "@/lib/types";
|
2026-08-05 11:11:10 +07:00
|
|
|
|
2026-08-07 10:44:03 +07:00
|
|
|
export function useModerationStats(initialData?: ModerationStats) {
|
|
|
|
|
return useSWR<ModerationStats>(
|
|
|
|
|
["moderation-stats"],
|
|
|
|
|
() => moderationApi.getStats(),
|
|
|
|
|
{ fallbackData: initialData },
|
2026-08-05 11:11:10 +07:00
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2026-08-07 10:44:03 +07:00
|
|
|
export function useModerationActions(
|
|
|
|
|
status?: string,
|
|
|
|
|
actionType?: string,
|
|
|
|
|
initialData?: ModerationAction[],
|
|
|
|
|
) {
|
|
|
|
|
const key = [
|
|
|
|
|
"moderation-actions",
|
|
|
|
|
status ?? "__all__",
|
|
|
|
|
actionType ?? "__all__",
|
|
|
|
|
];
|
2026-08-05 11:11:10 +07:00
|
|
|
return useSWR(
|
2026-08-07 10:44:03 +07:00
|
|
|
key,
|
2026-08-05 11:11:10 +07:00
|
|
|
async () => {
|
|
|
|
|
const res = await moderationApi.listActions(100, status, actionType);
|
|
|
|
|
return res.data;
|
|
|
|
|
},
|
2026-08-07 10:44:03 +07:00
|
|
|
{
|
|
|
|
|
keepPreviousData: true,
|
|
|
|
|
fallbackData:
|
|
|
|
|
!status && !actionType && initialData ? initialData : undefined,
|
|
|
|
|
},
|
2026-08-05 11:11:10 +07:00
|
|
|
);
|
|
|
|
|
}
|