diff --git a/src/components/MarkdownTemplate/MarkdownTemplateEditor.js b/src/components/MarkdownTemplate/MarkdownTemplateEditor.js index b02e9b6..1f4e16e 100644 --- a/src/components/MarkdownTemplate/MarkdownTemplateEditor.js +++ b/src/components/MarkdownTemplate/MarkdownTemplateEditor.js @@ -1,7 +1,7 @@ import React, { useContext, useState } from "react"; import { AuthContext } from "../../AuthProvider"; import { useNavigate, useParams } from "react-router-dom"; -import { useMarkdownTemplate, useSaveMarkdownTemplate } from "../../utils/queries/template-queries"; +import { useMarkdownTemplate, useSaveMarkdownTemplate } from "../../utils/queries/markdown-template-queries"; import LayoutEditor from "./LayoutEditor"; import ParametersManager from "./ParametersManager"; import "bulma/css/bulma.min.css"; diff --git a/src/components/MarkdownTemplate/TemplateSelector.js b/src/components/MarkdownTemplate/TemplateSelector.js index 6481540..9d9fbff 100644 --- a/src/components/MarkdownTemplate/TemplateSelector.js +++ b/src/components/MarkdownTemplate/TemplateSelector.js @@ -1,5 +1,5 @@ import React, {useState} from "react"; -import {useMarkdownTemplates} from "../../utils/queries/template-queries"; +import {useMarkdownTemplates} from "../../utils/queries/markdown-template-queries"; const TemplateSelector = ({template, onChange}) => { const [_template, setTemplate] = useState(template || { diff --git a/src/components/Markdowns/MarkdownContent.js b/src/components/Markdowns/MarkdownContent.js index 6435d5d..8d651e0 100644 --- a/src/components/Markdowns/MarkdownContent.js +++ b/src/components/Markdowns/MarkdownContent.js @@ -6,8 +6,8 @@ import MarkdownView from "./MarkdownView"; import PermissionGuard from "../PermissionGuard"; import {useMarkdown} from "../../utils/queries/markdown-queries"; import {usePath} from "../../utils/queries/path-queries"; -import {useMarkdownSetting} from "../../utils/queries/setting-queries"; -import {useMarkdownTemplate} from "../../utils/queries/template-queries"; +import {useMarkdownSetting} from "../../utils/queries/markdown-setting-queries"; +import {useMarkdownTemplate} from "../../utils/queries/markdown-template-queries"; const MarkdownContent = () => { const { id } = useParams(); diff --git a/src/components/Markdowns/MarkdownEditor.js b/src/components/Markdowns/MarkdownEditor.js index db893d4..8816678 100644 --- a/src/components/Markdowns/MarkdownEditor.js +++ b/src/components/Markdowns/MarkdownEditor.js @@ -6,9 +6,10 @@ import "./MarkdownEditor.css"; import PathManager from "../PathManager"; import MarkdownView from "./MarkdownView"; import { useMarkdown, useSaveMarkdown } from "../../utils/queries/markdown-queries"; -import {useMarkdownSetting} from "../../utils/queries/setting-queries"; -import {useMarkdownTemplate} from "../../utils/queries/template-queries"; +import {useMarkdownSetting} from "../../utils/queries/markdown-setting-queries"; +import {useMarkdownTemplate} from "../../utils/queries/markdown-template-queries"; import TemplatedEditor from "./TemplatedEditor"; +import {useMarkdownTemplateSetting} from "../../utils/queries/markdown-template-setting-queries"; const MarkdownEditor = () => { const { roles } = useContext(AuthContext); @@ -20,10 +21,11 @@ const MarkdownEditor = () => { const [pathId, setPathId] = useState(1); const {data: markdown, isLoading, error} = useMarkdown(id); const saveMarkdown = useSaveMarkdown(); - const {data: setting, isFetching: isSettingFetching} = useMarkdownSetting(markdown?.id); - const {data: template, isFetching: isTemplateFetching} = useMarkdownTemplate(setting?.id); + const {data: setting, isFetching: isSettingFetching} = useMarkdownSetting(markdown?.setting_id); + const {data: templateSetting, isFetching: isTemplateSettingFetching} = useMarkdownTemplateSetting(setting?.template_setting_id); + const {data: template, isFetching: isTemplateFetching} = useMarkdownTemplate(templateSetting?.template_id); - const notReady = isLoading || isTemplateFetching || isSettingFetching; + const notReady = isLoading || isTemplateFetching || isSettingFetching || isTemplateSettingFetching; useEffect(() => { if(markdown){ setTitle(markdown.title); @@ -53,7 +55,7 @@ const MarkdownEditor = () => { if(notReady) return

Loading...

; - console.log(markdown?.id); + if(error) return

{error.message || "Failed to load markdown"}

; @@ -134,4 +136,5 @@ const MarkdownEditor = () => { ); }; -export default MarkdownEditor; \ No newline at end of file +export default MarkdownEditor; + diff --git a/src/components/Markdowns/MarkdownView.js b/src/components/Markdowns/MarkdownView.js index 4f8901e..bb04f5a 100644 --- a/src/components/Markdowns/MarkdownView.js +++ b/src/components/Markdowns/MarkdownView.js @@ -33,7 +33,8 @@ const Translate = ({variable, value}) => { const ParseTemplate = ({template, variables}) => { - let res = template.layout; + if(!template || !Array.isArray(template.parameters)) return ''; + let res = template.layout ?? ''; for (const parameter of template.parameters) { res = res.replaceAll(`<${parameter.name}/>`, Translate({ variable: parameter, diff --git a/src/components/Markdowns/TemplatedEditor.js b/src/components/Markdowns/TemplatedEditor.js index 39edc64..3cf4eb3 100644 --- a/src/components/Markdowns/TemplatedEditor.js +++ b/src/components/Markdowns/TemplatedEditor.js @@ -1,5 +1,5 @@ import React, {useState} from "react"; -import {useMarkdownTemplate} from "../../utils/queries/template-queries"; +import {useMarkdownTemplate} from "../../utils/queries/markdown-template-queries"; const TemplatedEditorComponent = ({ variable, value, namespace, onContentChanged }) => { if(variable.type.base_type === "string") { @@ -9,7 +9,7 @@ const TemplatedEditorComponent = ({ variable, value, namespace, onContentChanged onContentChanged(variable.name, e.target.value)} />
diff --git a/src/components/Modals/MarkdownSettingModal.js b/src/components/Modals/MarkdownSettingModal.js index 6e21d70..f8d65ea 100644 --- a/src/components/Modals/MarkdownSettingModal.js +++ b/src/components/Modals/MarkdownSettingModal.js @@ -1,6 +1,6 @@ -import {useCreateMarkdownSetting, useMarkdownSetting} from "../../utils/queries/setting-queries"; +import {useCreateMarkdownSetting, useMarkdownSetting} from "../../utils/queries/markdown-setting-queries"; import {useSaveMarkdown} from "../../utils/queries/markdown-queries"; -import {useState} from "react"; +import React, {useState} from "react"; import MarkdownTemplateSettingPanel from "../Settings/MarkdownSettings/MarkdownTemplateSettingPanel"; const MarkdownSettingModal = ({isOpen, markdown, onClose}) => { @@ -40,17 +40,7 @@ const MarkdownSettingModal = ({isOpen, markdown, onClose}) => { /> { - markdownSetting ? ( -
- -
- ) : ( + markdownSetting ? (
{activeTab === "template" && ( )}
+ ) : ( +
+ +
) } @@ -73,4 +73,4 @@ const MarkdownSettingModal = ({isOpen, markdown, onClose}) => { ); }; - +export default MarkdownSettingModal; diff --git a/src/components/Modals/PathSettingModal.js b/src/components/Modals/PathSettingModal.js index 74c9fef..8b4a02e 100644 --- a/src/components/Modals/PathSettingModal.js +++ b/src/components/Modals/PathSettingModal.js @@ -1,5 +1,5 @@ import {useUpdatePath} from "../../utils/queries/path-queries"; -import {useCreatePathSetting, usePathSetting} from "../../utils/queries/setting-queries"; +import {useCreatePathSetting, usePathSetting} from "../../utils/queries/path-setting-queries"; import WebhookSettingPanel from "../Settings/PathSettings/WebhookSettingPanel"; import React, {useState} from "react"; const PathSettingModal = ({ isOpen, path, onClose }) => { diff --git a/src/components/Navigations/MainNavigation.js b/src/components/Navigations/MainNavigation.js index caa9862..b8ff456 100644 --- a/src/components/Navigations/MainNavigation.js +++ b/src/components/Navigations/MainNavigation.js @@ -68,8 +68,6 @@ const MainNavigation = () => { const a = document.createElement("a"); const contentDisposition = response.headers.get("Content-Disposition"); let filename = "backup.zip"; - console.log(response.headers); - console.log(contentDisposition); if (contentDisposition) { const match = contentDisposition.match(/filename="?([^"]+)"?/); if (match && match[1]) { diff --git a/src/components/Navigations/MarkdownNode.js b/src/components/Navigations/MarkdownNode.js index 938d0f2..c9dd388 100644 --- a/src/components/Navigations/MarkdownNode.js +++ b/src/components/Navigations/MarkdownNode.js @@ -1,8 +1,9 @@ import {Link} from "react-router-dom"; import PermissionGuard from "../PermissionGuard"; -import React from "react"; - +import React, {useState} from "react"; +import MarkdownSettingModal from "../Modals/MarkdownSettingModal"; const MarkdownNode = ({markdown, handleMoveMarkdown}) => { + const [isMarkdownSettingModalOpen, setIsMarkdownSettingModalOpen] = useState(false); return (
  • @@ -12,7 +13,21 @@ const MarkdownNode = ({markdown, handleMoveMarkdown}) => { -
    +

    + +

    +
    + setIsMarkdownSettingModalOpen(false)} + />
    diff --git a/src/components/Navigations/PathNode.js b/src/components/Navigations/PathNode.js index 873a733..e82ed83 100644 --- a/src/components/Navigations/PathNode.js +++ b/src/components/Navigations/PathNode.js @@ -31,7 +31,6 @@ const PathNode = ({ path, isRoot = false }) => { }; const handleSave = () => { - console.log(`handleSave ${path.id}`); updatePath.mutate({id: path.id, data: {name: newName}}, { onSuccess: () => setIsEditing(false), onError: err => alert("failed to update this path"), @@ -135,7 +134,7 @@ const PathNode = ({ path, isRoot = false }) => { type="button" > - +

    diff --git a/src/components/Settings/MarkdownSettings/MarkdownTemplateSettingPanel.js b/src/components/Settings/MarkdownSettings/MarkdownTemplateSettingPanel.js index c5731f8..fcf9d21 100644 --- a/src/components/Settings/MarkdownSettings/MarkdownTemplateSettingPanel.js +++ b/src/components/Settings/MarkdownSettings/MarkdownTemplateSettingPanel.js @@ -1,17 +1,21 @@ import { - useCreateMarkdownTemplateSetting, useMarkdownTemplate, useMarkdownTemplates, - useMarkdownTemplateSetting, useUpdateMarkdownTemplateSetting -} from "../../../utils/queries/template-queries"; -import {useState} from "react"; -import {useUpdateMarkdownSetting} from "../../../utils/queries/setting-queries"; +} from "../../../utils/queries/markdown-template-queries"; +import { + useCreateMarkdownTemplateSetting, + useMarkdownTemplateSetting, + useUpdateMarkdownTemplateSetting +} from "../../../utils/queries/markdown-template-setting-queries"; +import React, {useEffect, useState} from "react"; +import {useUpdateMarkdownSetting} from "../../../utils/queries/markdown-setting-queries"; const MarkdownTemplateSettingPanel = ({markdownSetting, onClose}) => { - const {data: setting, isFetching: settingIsFetching } = useMarkdownTemplateSetting(markdownSetting.template_setting_id || 0); + const {data: setting, isFetching: settingIsFetching } = useMarkdownTemplateSetting(markdownSetting?.template_setting_id); const {data: templates, isFetching: templatesAreFetching}=useMarkdownTemplates(); const {data: template, isFetching: templateIsFetching} = useMarkdownTemplate(setting?.template_id); - const [selectedTemplate, setSelectedTemplate] = useState(template); + const [selectedTemplateId, setSelectedTemplateId] = useState(template?.id ?? undefined); + const [selectedTemplate, setSelectedTemplate] = useState(templates?.find(t => t.id === selectedTemplateId) || undefined); const createMarkdownTemplateSetting = useCreateMarkdownTemplateSetting(); const updateMarkdownSetting = useUpdateMarkdownSetting(); @@ -33,7 +37,7 @@ const MarkdownTemplateSettingPanel = ({markdownSetting, onClose}) => { updateMarkdownTemplateSetting.mutate({ id: setting.id, data: { - template_id: selectedTemplate.id, + template_id: selectedTemplateId, } }, { onSuccess: () => alert("Saved"), @@ -42,9 +46,17 @@ const MarkdownTemplateSettingPanel = ({markdownSetting, onClose}) => { onClose(); }; + useEffect(() => { + if(template?.id && selectedTemplateId === undefined) { + setSelectedTemplateId(template?.id ?? undefined); + setSelectedTemplate(templates?.find(t => t.id === selectedTemplateId) || undefined); + } + },[template, selectedTemplateId]); if (settingIsFetching || templatesAreFetching || templatesAreFetching || templateIsFetching) { return (

    Loading...

    ); } + console.log("template", template); + console.log("selectedTemplateId", selectedTemplateId); return setting ? (

    Template Setting

    @@ -52,12 +64,14 @@ const MarkdownTemplateSettingPanel = ({markdownSetting, onClose}) => {
    @@ -77,7 +91,7 @@ const MarkdownTemplateSettingPanel = ({markdownSetting, onClose}) => { type="button" onClick={handleCreateTemplateSetting} > - Create Template Setting + Create Template Setting ); }; diff --git a/src/components/Settings/PathSettings/WebhookSettingPanel.js b/src/components/Settings/PathSettings/WebhookSettingPanel.js index 0c9c81f..28102ae 100644 --- a/src/components/Settings/PathSettings/WebhookSettingPanel.js +++ b/src/components/Settings/PathSettings/WebhookSettingPanel.js @@ -11,7 +11,7 @@ import { useUpdateWebhook, useDeleteWebhook, } from "../../../utils/queries/webhook-queries"; -import {useUpdatePathSetting} from "../../../utils/queries/setting-queries"; +import {useUpdatePathSetting} from "../../../utils/queries/path-setting-queries"; const WebhookSettingPanel = ({pathSetting, onClose}) => { diff --git a/src/utils/queries/markdown-queries.js b/src/utils/queries/markdown-queries.js index 76e954f..87c101f 100644 --- a/src/utils/queries/markdown-queries.js +++ b/src/utils/queries/markdown-queries.js @@ -61,7 +61,7 @@ export const useSaveMarkdown = () => { const url = id ? `${config.BACKEND_HOST}/api/markdown/${id}` : `${config.BACKEND_HOST}/api/markdown/`; - const method = id ? "PUT" : "POST"; + const method = id ? "PATCH" : "POST"; return fetch_(url, { method, body: JSON.stringify(data), @@ -70,6 +70,7 @@ export const useSaveMarkdown = () => { onSuccess: (res) => { queryClient.invalidateQueries(["markdownsByPath", res.path_id]); queryClient.invalidateQueries(["markdown", res.id]); + queryClient.invalidateQueries("tree"); }, }); }; @@ -87,6 +88,7 @@ export const useMoveMarkdown = () => { { onSuccess: () => { queryClient.invalidateQueries("paths"); + queryClient.invalidateQueries("tree"); } } ); diff --git a/src/utils/queries/markdown-setting-queries.js b/src/utils/queries/markdown-setting-queries.js new file mode 100644 index 0000000..b06a2cb --- /dev/null +++ b/src/utils/queries/markdown-setting-queries.js @@ -0,0 +1,75 @@ +import {useConfig} from "../../ConfigProvider"; +import {useMutation, useQuery, useQueryClient} from "react-query"; +import {fetch_} from "../request-utils"; + +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(["markdown_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, variables) => { + queryClient.invalidateQueries(["markdown_setting", variables.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(["markdown_setting", data.id]); + } + } + ); +}; diff --git a/src/utils/queries/template-queries.js b/src/utils/queries/markdown-template-queries.js similarity index 57% rename from src/utils/queries/template-queries.js rename to src/utils/queries/markdown-template-queries.js index 7d61e2a..e935a7f 100644 --- a/src/utils/queries/template-queries.js +++ b/src/utils/queries/markdown-template-queries.js @@ -24,7 +24,7 @@ export const useMarkdownTemplates = () => { onSuccess: (data) => { if(data){ for(const template of data){ - queryClient.setQueryData(["markdown_template", template.id], data); + queryClient.setQueryData(["markdown_template", template.id], template); } } } @@ -99,75 +99,3 @@ export const useSaveMarkdownTemplate = () => { } }); } - -export const useMarkdownTemplateSettings = () => { - const config = useConfig(); - const queryClient = useQueryClient(); - return useQuery( - "markdown_template_settings", - () => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/`), { - onSuccess: (data) => { - if(data){ - for(const setting of data){ - queryClient.invalidateQueries(["markdown_template_setting", settings.id]); - } - } - } - } - ); -}; - -export const useMarkdownTemplateSetting = (setting_id) => { - const config = useConfig(); - const queryClient = useQueryClient(); - return useQuery( - ["markdown_template_setting", setting_id], - () => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/${settings.id}`), { - enabled: !!setting_id, - } - ); -}; - - -export const useCreateMarkdownTemplateSetting = () => { - const config = useConfig(); - const queryClient = useQueryClient(); - return useMutation(({id, data}) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/${id}`, { - method: "POST", - body: JSON.stringify(data), - }), { - onSuccess: (data) => { - queryClient.invalidateQueries(["markdown_template_setting", data.id]); - } - }); -}; - -export const useUpdateMarkdownTemplateSetting = () => { - const config = useConfig(); - const queryClient = useQueryClient(); - return useMutation( - ({id, data}) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/${id}`, { - method: "PUT", - body: JSON.stringify(data), - }),{ - onSuccess: (res) => { - queryClient.invalidateQueries(["markdown_template_setting", res.id]); - queryClient.invalidateQueries("markdown_template_settings"); - } - } - ); -}; - -export const useDeleteMarkdownTemplateSetting = () => { - const config = useConfig(); - const queryClient = useQueryClient(); - return useMutation( - ({id}) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/${id}`, { - method: "DELETE", - }), { - onSuccess: (res, variables) => { - queryClient.invalidateQueries(["markdown_template_setting", variables.id]); - } - } - ); -}; diff --git a/src/utils/queries/markdown-template-setting-queries.js b/src/utils/queries/markdown-template-setting-queries.js new file mode 100644 index 0000000..3c3d08e --- /dev/null +++ b/src/utils/queries/markdown-template-setting-queries.js @@ -0,0 +1,74 @@ +import {useConfig} from "../../ConfigProvider"; +import {useMutation, useQuery, useQueryClient} from "react-query"; +import {fetch_} from "../request-utils"; + +export const useMarkdownTemplateSettings = () => { + const config = useConfig(); + const queryClient = useQueryClient(); + return useQuery( + "markdown_template_settings", + () => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/`), { + onSuccess: (data) => { + if(data){ + for(const setting of data){ + queryClient.invalidateQueries(["markdown_template_setting", settings.id]); + } + } + } + } + ); +}; + +export const useMarkdownTemplateSetting = (setting_id) => { + const config = useConfig(); + return useQuery( + ["markdown_template_setting", setting_id], + () => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/${setting_id}`), { + enabled: !!setting_id, + } + ); +}; + + +export const useCreateMarkdownTemplateSetting = () => { + const config = useConfig(); + const queryClient = useQueryClient(); + return useMutation((data) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/`, { + method: "POST", + body: JSON.stringify(data), + }), { + onSuccess: (data) => { + queryClient.invalidateQueries(["markdown_template_setting", data.id]); + } + }); +}; + +export const useUpdateMarkdownTemplateSetting = () => { + const config = useConfig(); + const queryClient = useQueryClient(); + return useMutation( + ({id, data}) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/${id}`, { + method: "PATCH", + body: JSON.stringify(data), + }),{ + onSuccess: (res) => { + queryClient.invalidateQueries(["markdown_template_setting", res.id]); + queryClient.invalidateQueries("markdown_template_settings"); + } + } + ); +}; + +export const useDeleteMarkdownTemplateSetting = () => { + const config = useConfig(); + const queryClient = useQueryClient(); + return useMutation( + ({id}) => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/template/${id}`, { + method: "DELETE", + }), { + onSuccess: (res, variables) => { + queryClient.invalidateQueries(["markdown_template_setting", variables.id]); + } + } + ); +}; diff --git a/src/utils/queries/path-setting-queries.js b/src/utils/queries/path-setting-queries.js new file mode 100644 index 0000000..957060d --- /dev/null +++ b/src/utils/queries/path-setting-queries.js @@ -0,0 +1,80 @@ +import {useConfig} from "../../ConfigProvider"; +import {useMutation, useQuery, useQueryClient} from "react-query"; +import {fetch_} from "../request-utils"; + +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_settings"); + } + } + ); +}; + + +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_settings"); + } + } + ); +}; + + +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_settings"); + } + } + ); +}; diff --git a/src/utils/queries/setting-queries.js b/src/utils/queries/setting-queries.js deleted file mode 100644 index cf9bd0a..0000000 --- a/src/utils/queries/setting-queries.js +++ /dev/null @@ -1,151 +0,0 @@ -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]); - } - } - ); -}; diff --git a/src/utils/queries/webhook-queries.js b/src/utils/queries/webhook-queries.js index 83b2fa2..9e8c686 100644 --- a/src/utils/queries/webhook-queries.js +++ b/src/utils/queries/webhook-queries.js @@ -77,7 +77,7 @@ export const useWebhookSettings = () => { const queryClient = useQueryClient(); return useQuery( "webhook_setting", - () => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/`), + () => fetch_(`${config.BACKEND_HOST}/api/setting/path/webhook/`), { onSuccess: (data) => { if(data){ @@ -94,7 +94,7 @@ export const useWebhookSetting = (setting_id) => { const config = useConfig(); return useQuery( ["webhook_setting", setting_id], - () => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/${setting_id}`), + () => fetch_(`${config.BACKEND_HOST}/api/setting/path/webhook/${setting_id}`), { enabled: !!setting_id, }); @@ -105,7 +105,7 @@ export const useCreateWebhookSetting = () => { const config = useConfig(); const queryClient = useQueryClient(); return useMutation( - (data) => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/`, { + (data) => fetch_(`${config.BACKEND_HOST}/api/setting/path/webhook/`, { method: "POST", body: JSON.stringify(data) }),{ @@ -121,7 +121,7 @@ export const useUpdateWebhookSetting = () => { const config = useConfig(); const queryClient = useQueryClient(); return useMutation( - ({id, data}) => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/${id}`, { + ({id, data}) => fetch_(`${config.BACKEND_HOST}/api/setting/path/webhook/${id}`, { method: "PATCH", body: JSON.stringify(data) }),{ @@ -138,7 +138,7 @@ export const useDeleteWebhookSetting = () => { const config = useConfig(); const queryClient = useQueryClient(); return useMutation( - (id) => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/${id}`, { + (id) => fetch_(`${config.BACKEND_HOST}/api/setting/path/webhook/${id}`, { method: "DELETE", }), {