import {fetch_} from "../request-utils"; import {useConfig} from "../../ConfigProvider"; import {useMutation, useQuery, useQueryClient} from "react-query"; export const usePathSettings = () => { const config = useConfig(); const queryClient = useQueryClient(); return useQuery( "path_settings", () => fetch_(`${config.BACKEND_HOST}/api/setting/path/`), { onSuccess: (data) => { if(data){ for(const setting of data) queryClient.setQueryData(["path_setting", setting.id], setting); } } } ); }; export const usePathSetting = (setting_id) => { const config = useConfig(); return useQuery( ["path_setting", setting_id], () => fetch_(`${config.BACKEND_HOST}/api/setting/path/${setting_id}`), { enabled: !!setting_id, } ); }; export const useCreatePathSetting = () => { const config = useConfig(); const queryClient = useQueryClient(); return useMutation( (data) => fetch_(`${config.BACKEND_HOST}/api/setting/path/`, { method: "POST", body: JSON.stringify(data) }), { onSuccess: (data) => { queryClient.invalidateQueries(["path_setting", data.id]); queryClient.invalidateQueries("path_setting"); } } ); }; export const useUpdatePathSetting = () => { const config = useConfig(); const queryClient = useQueryClient(); return useMutation( ({id, data}) => fetch_(`${config.BACKEND_HOST}/api/setting/path/${id}`, { method: "PATCH", body: JSON.stringify(data) }), { onSuccess: (data, variables) => { queryClient.invalidateQueries(["path_setting", variables.id]); queryClient.invalidateQueries("path_setting"); } } ); }; export const useDeletePathSetting = () => { const config = useConfig(); const queryClient = useQueryClient(); return useMutation( (id) => fetch_(`${config.BACKEND_HOST}/api/setting/path/${id}`, { method: "DELETE", }),{ onSuccess: (data, variables) => { queryClient.invalidateQueries(["path_setting", variables.id]); queryClient.invalidateQueries("path_setting"); } } ); }; export const useMarkdownSettings = () => { const config = useConfig(); const queryClient = useQueryClient(); return useQuery( "markdown_setting", () => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/`), { onSuccess: (data) => { if(data){ for(const setting of data) queryClient.invalidateQueries(["markdown_setting", setting.id]); } } } ); }; export const useMarkdownSetting = (setting_id) => { const config = useConfig(); return useQuery( ["markdown_setting", setting_id], () => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/${setting_id}`, {}), { enabled: !!setting_id, } ); }; export const useCreateMarkdownSetting = () => { const config = useConfig(); const queryClient = useQueryClient(); return useMutation( (data) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/`, { method: "POST", body: JSON.stringify(data) }), { onSuccess: (data) => { queryClient.invalidateQueries(["path_setting", data.id]); } } ); }; export const useUpdateMarkdownSetting = () => { const config = useConfig(); const queryClient = useQueryClient(); return useMutation( ({id, data}) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/${id}`, { method: "PATCH", body: JSON.stringify(data) }),{ onSuccess: (data) => { queryClient.invalidateQueries(["path_setting", data.id]); } }); }; export const useDeleteMarkdownSetting = () => { const config = useConfig(); const queryClient = useQueryClient(); return useMutation( (id) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/${id}`, { method: "DELETE", }),{ onSuccess: (data) => { queryClient.invalidateQueries(["path_setting", data.id]); } } ); };