Locales cleanup

This commit is contained in:
Jamie Curnow
2023-01-16 15:50:40 +10:00
parent af9349d4a7
commit 374447ccc7
26 changed files with 142 additions and 374 deletions

View File

@ -1,4 +1,5 @@
export * from "./useAccessLists";
export * from "./useCertificate";
export * from "./useCertificateAuthorities";
export * from "./useCertificateAuthority";
export * from "./useCertificates";

View File

@ -0,0 +1,56 @@
import {
createCertificate,
getCertificate,
setCertificate,
Certificate,
} from "api/npm";
import { useMutation, useQuery, useQueryClient } from "react-query";
const fetchCertificate = (id: any) => {
return getCertificate(id);
};
const useCertificate = (id: number, options = {}) => {
return useQuery<Certificate, Error>(
["certificate", id],
() => fetchCertificate(id),
{
staleTime: 60 * 1000, // 1 minute
...options,
},
);
};
const useSetCertificate = () => {
const queryClient = useQueryClient();
return useMutation(
(values: Certificate) => {
return values.id
? setCertificate(values.id, values)
: createCertificate(values);
},
{
onMutate: (values) => {
const previousObject = queryClient.getQueryData([
"certificate",
values.id,
]);
queryClient.setQueryData(["certificate", values.id], (old: any) => ({
...old,
...values,
}));
return () =>
queryClient.setQueryData(["certificate", values.id], previousObject);
},
onError: (error, values, rollback: any) => rollback(),
onSuccess: async ({ id }: Certificate) => {
queryClient.invalidateQueries(["certificate", id]);
queryClient.invalidateQueries("certificate");
},
},
);
};
export { useCertificate, useSetCertificate };