FactuGES_ERP/modules/audit/src/web/shared/hooks/use-audit-entry.ts

28 lines
1.1 KiB
TypeScript

import { useCompanyQueryScope, useDataSource } from "@erp/core/hooks";
import { companyQueryKey } from "@erp/core/query";
import { useIdentityAuthSession } from "@erp/identity/client";
import { type DefaultError, useQuery } from "@tanstack/react-query";
import { findAuditEntryById } from "../api/find-audit-entry-by-id.api";
import type { AuditEntryDetail } from "../entities/audit-entry-detail.entity";
import { auditQueryKeys } from "./audit-query-keys";
export const useAuditEntry = (id: string | null) => {
const queryScope = useCompanyQueryScope();
const dataSource = useDataSource();
const { activeCompany } = useIdentityAuthSession();
const companyId = activeCompany?.id ?? "none";
return useQuery<AuditEntryDetail, DefaultError>({
queryKey: companyQueryKey(queryScope, auditQueryKeys.detail(companyId, id ?? "none")),
queryFn: ({ signal }) => {
if (!id) {
throw new Error("auditEntryId is required");
}
return findAuditEntryById(dataSource, { id, signal });
},
enabled: activeCompany !== null && id !== null,
});
};