mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-07-23 09:54:34 +00:00
Moved v3 code from NginxProxyManager/nginx-proxy-manager-3 to NginxProxyManager/nginx-proxy-manager
This commit is contained in:
62
frontend/src/hooks/useCertificateAuthority.ts
Normal file
62
frontend/src/hooks/useCertificateAuthority.ts
Normal file
@ -0,0 +1,62 @@
|
||||
import {
|
||||
createCertificateAuthority,
|
||||
getCertificateAuthority,
|
||||
setCertificateAuthority,
|
||||
CertificateAuthority,
|
||||
} from "api/npm";
|
||||
import { useMutation, useQuery, useQueryClient } from "react-query";
|
||||
|
||||
const fetchCertificateAuthority = (id: any) => {
|
||||
return getCertificateAuthority(id);
|
||||
};
|
||||
|
||||
const useCertificateAuthority = (id: number, options = {}) => {
|
||||
return useQuery<CertificateAuthority, Error>(
|
||||
["certificate-authority", id],
|
||||
() => fetchCertificateAuthority(id),
|
||||
{
|
||||
staleTime: 60 * 1000, // 1 minute
|
||||
...options,
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
const useSetCertificateAuthority = () => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation(
|
||||
(values: CertificateAuthority) => {
|
||||
return values.id
|
||||
? setCertificateAuthority(values.id, values)
|
||||
: createCertificateAuthority(values);
|
||||
},
|
||||
{
|
||||
onMutate: (values) => {
|
||||
const previousObject = queryClient.getQueryData([
|
||||
"certificate-authority",
|
||||
values.id,
|
||||
]);
|
||||
|
||||
queryClient.setQueryData(
|
||||
["certificate-authority", values.id],
|
||||
(old: any) => ({
|
||||
...old,
|
||||
...values,
|
||||
}),
|
||||
);
|
||||
|
||||
return () =>
|
||||
queryClient.setQueryData(
|
||||
["certificate-authority", values.id],
|
||||
previousObject,
|
||||
);
|
||||
},
|
||||
onError: (error, values, rollback: any) => rollback(),
|
||||
onSuccess: async ({ id }: CertificateAuthority) => {
|
||||
queryClient.invalidateQueries(["certificate-authority", id]);
|
||||
queryClient.invalidateQueries("certificate-authorities");
|
||||
},
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
export { useCertificateAuthority, useSetCertificateAuthority };
|
Reference in New Issue
Block a user