Files
Edu/apps/admin-portal/src/hooks/use-audit-overview.ts
SpecialX 7cf9aec20e feat(admin-portal): 完成参考项目差距闭环 - 4 批次补齐 + Vitest 测试
差距分析闭环(workline §7-§8):
- P0:审计子模块 3 页 + 学校组织 7 页
- P1:系统设置 4 Card + 公告管理 + 邀请码管理
- P2:文件管理 + AI 配置
- P6:5 测试文件 / 69 用例全过

共享基础设施:
- permissions +11 权限点 +14 路由
- view-models +20 接口
- i18n +100 key
- graphql-client +25 operation
- fixtures/handlers +15 mock +20 handler

质量:typecheck + lint 零错误,vitest 69/69 通过,arch.db 已更新
2026-07-13 13:05:29 +08:00

40 lines
890 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 审计总览 Hooks
*
* contract §2.4auditOverviewStats / auditTrend
*/
import { useGraphQuery } from "./use-graphql";
import {
AUDIT_OVERVIEW_STATS_QUERY,
AUDIT_TREND_QUERY,
} from "@/lib/graphql-client";
import type { AuditOverviewStats, AuditTrendPoint } from "@/types/view-models";
interface AuditOverviewStatsResponse {
auditOverviewStats: AuditOverviewStats;
}
interface AuditTrendResponse {
auditTrend: AuditTrendPoint[];
}
export function useAuditOverviewStats() {
const result = useGraphQuery<AuditOverviewStatsResponse>(
AUDIT_OVERVIEW_STATS_QUERY,
);
return {
...result,
data: result.data?.auditOverviewStats ?? null,
};
}
export function useAuditTrend(days?: number) {
const result = useGraphQuery<AuditTrendResponse>(AUDIT_TREND_QUERY, {
days,
});
return {
...result,
data: result.data?.auditTrend ?? null,
};
}