Files
HangmanLab.Frontend/src/utils/queries/setting-queries.js
2025-04-14 17:02:22 +01:00

152 lines
4.4 KiB
JavaScript

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]);
}
}
);
};