Files
edr-platform/apps/edr-freight-web/portal/src/hooks/useSavedSignature.ts
Marshal 7106a549ab Add signature management features for booking contracts
- Implement MySignatureCard component for viewing and updating saved signatures.
- Enhance BookingContractPage to utilize saved signatures for contract signing.
- Introduce hooks for fetching and saving user signatures.
- Update ContractView interface to include saved signature details.
- Create signatures service for API interactions related to user signatures.
2026-06-16 23:06:41 +00:00

31 lines
851 B
TypeScript

import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import toast from "react-hot-toast";
import {
signaturesService,
type SaveSignaturePayload,
} from "@/services/signatures.service";
const SAVED_SIGNATURE_KEY = ["me", "signature"] as const;
export function useMySignature() {
return useQuery({
queryKey: SAVED_SIGNATURE_KEY,
queryFn: () => signaturesService.getMySignature(),
staleTime: 60_000,
});
}
export function useSaveSignature() {
const qc = useQueryClient();
return useMutation({
mutationFn: (payload: SaveSignaturePayload) =>
signaturesService.saveMySignature(payload),
onSuccess: () => {
toast.success("Signature saved");
void qc.invalidateQueries({ queryKey: SAVED_SIGNATURE_KEY });
},
onError: () => toast.error("Failed to save signature"),
});
}