mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-30 09:58:12 +00:00
- 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.
31 lines
851 B
TypeScript
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"),
|
|
});
|
|
}
|