add: template editor

This commit is contained in:
h z
2025-04-14 17:02:22 +01:00
parent 09338a2683
commit 947b59e3ea
29 changed files with 1277 additions and 166 deletions

View File

@@ -1,6 +1,6 @@
import {useQuery, useMutation, useQueryClient} from 'react-query';
import {fetch_} from "./request-utils";
import {useConfig} from "../ConfigProvider";
import {fetch_} from "../request-utils";
import {useConfig} from "../../ConfigProvider";

View File

@@ -1,6 +1,6 @@
import { useQuery, useMutation, useQueryClient } from "react-query";
import { fetch_ } from "./request-utils";
import {useConfig} from "../ConfigProvider";
import { fetch_ } from "../request-utils";
import {useConfig} from "../../ConfigProvider";
export const usePaths = (parent_id) => {

View File

@@ -1,5 +1,5 @@
import {fetch_} from "./request-utils";
import {useConfig} from "../ConfigProvider";
import {fetch_} from "../request-utils";
import {useConfig} from "../../ConfigProvider";
import {useMutation, useQuery, useQueryClient} from "react-query";
export const usePathSettings = () => {
@@ -99,7 +99,7 @@ export const useMarkdownSetting = (setting_id) => {
const config = useConfig();
return useQuery(
["markdown_setting", setting_id],
() => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/`), {
() => fetch_(`${config.BACKEND_HOST}/api/setting/markdown/${setting_id}`, {}), {
enabled: !!setting_id,
}
);

View File

@@ -0,0 +1,173 @@
import {useConfig} from "../../ConfigProvider";
import {useMutation, useQuery, useQueryClient} from "react-query";
import {fetch_} from "../request-utils";
import {template} from "@babel/core";
import {data} from "react-router-dom";
export const useMarkdownTemplate = (template_id) => {
const config = useConfig();
return useQuery(
["markdown_template", template_id],
() => fetch_(`${config.BACKEND_HOST}/api/template/markdown/${template_id}`), {
enabled: !!template_id,
}
);
};
export const useMarkdownTemplates = () => {
const config = useConfig();
const queryClient = useQueryClient();
return useQuery(
"markdown_templates",
() => fetch_(`${config.BACKEND_HOST}/api/template/markdown/`), {
onSuccess: (data) => {
if(data){
for(const template of data){
queryClient.setQueryData(["markdown_template", template.id], data);
}
}
}
}
);
};
export const useUpdateMarkdownTemplate = () => {
const config = useConfig();
const queryClient = useQueryClient();
return useMutation(
({id, data}) => fetch_(`${config.BACKEND_HOST}/api/template/markdown/${id}`, {
method: "PUT",
body: JSON.stringify(data),
}),
{
onSuccess: (data) => {
queryClient.invalidateQueries(["markdown_template", data.id]);
queryClient.invalidateQueries("markdown_templates");
}
}
);
}
export const useCreateMarkdownTemplate = () => {
const config = useConfig();
const queryClient = useQueryClient();
return useMutation(
(data) => fetch_(`${config.BACKEND_HOST}/api/template/markdown/`, {
method: "POST",
body: JSON.stringify(data),
}),{
onSuccess: (data) => {
queryClient.invalidateQueries(["markdown_template", data.id]);
queryClient.invalidateQueries("markdown_templates");
}
}
);
}
export const useDeleteMarkdownTemplate = () => {
const config = useConfig();
const queryClient = useQueryClient();
return useMutation(
(id) => fetch_(`${config.BACKEND_HOST}/api/template/markdown/${id}`, {
method: "DELETE"
}), {
onSuccess: (res, variables) => {
queryClient.invalidateQueries(["markdown_template", variables]);
queryClient.invalidateQueries("markdown_templates");
}
}
)
}
export const useSaveMarkdownTemplate = () => {
const config = useConfig();
const queryClient = useQueryClient();
return useMutation(({id, data}) => {
const url = id
? `${config.BACKEND_HOST}/api/template/markdown/${id}`
: `${config.BACKEND_HOST}/api/template/markdown/`;
const method = id? "PUT": "POST";
return fetch_(url, {
method,
body: JSON.stringify(data),
})
},{
onSuccess: (data) => {
queryClient.invalidateQueries(["markdown_template", data.id]);
queryClient.invalidateQueries("markdown_templates");
}
});
}
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]);
}
}
);
};

View File

@@ -1,6 +1,6 @@
import {useQuery, useMutation, useQueryClient} from "react-query";
import {fetch_} from "./request-utils";
import {useConfig} from "../ConfigProvider";
import {fetch_} from "../request-utils";
import {useConfig} from "../../ConfigProvider";
export const useTree = () => {

View File

@@ -1,5 +1,5 @@
import {fetch_ } from "./request-utils"
import {useConfig} from "../ConfigProvider";
import {fetch_ } from "../request-utils"
import {useConfig} from "../../ConfigProvider";
import {useMutation, useQuery, useQueryClient} from "react-query";
export const useWebhooks = () =>{
@@ -10,8 +10,11 @@ export const useWebhooks = () =>{
() => fetch_(`${config.BACKEND_HOST}/api/webhook/`),
{
onSuccess: (data) => {
if(data)
queryClient.setQueryData("webhooks", data);
if(data){
for(const webhook of data){
queryClient.setQueryData(["webhook", data.id], data);
}
}
}
}
);
@@ -45,7 +48,8 @@ export const useUpdateWebhook = () =>{
body: JSON.stringify(data)
}),
{
onSuccess: () => {
onSuccess: (res) => {
queryClient.invalidateQueries(["webhook", res.id]);
queryClient.invalidateQueries("webhooks");
}
}
@@ -60,7 +64,8 @@ export const useDeleteWebhook = () => {
method: "DELETE",
}),
{
onSuccess: () => {
onSuccess: (res, variables) => {
queryClient.invalidateQueries(["webhook", variables.id]);
queryClient.invalidateQueries("webhooks");
}
}
@@ -72,7 +77,7 @@ export const useWebhookSettings = () => {
const queryClient = useQueryClient();
return useQuery(
"webhook_setting",
() => fetch_(`${config.BACKEND_HOST}/api/webhook/setting/`),
() => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/`),
{
onSuccess: (data) => {
if(data){
@@ -89,7 +94,7 @@ export const useWebhookSetting = (setting_id) => {
const config = useConfig();
return useQuery(
["webhook_setting", setting_id],
() => fetch_(`${config.BACKEND_HOST}/api/webhook/setting/${setting_id}`),
() => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/${setting_id}`),
{
enabled: !!setting_id,
});
@@ -100,7 +105,7 @@ export const useCreateWebhookSetting = () => {
const config = useConfig();
const queryClient = useQueryClient();
return useMutation(
(data) => fetch_(`${config.BACKEND_HOST}/api/webhook/setting/`, {
(data) => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/`, {
method: "POST",
body: JSON.stringify(data)
}),{
@@ -116,7 +121,7 @@ export const useUpdateWebhookSetting = () => {
const config = useConfig();
const queryClient = useQueryClient();
return useMutation(
({id, data}) => fetch_(`${config.BACKEND_HOST}/api/webhook/setting/${id}`, {
({id, data}) => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/${id}`, {
method: "PATCH",
body: JSON.stringify(data)
}),{
@@ -133,7 +138,7 @@ export const useDeleteWebhookSetting = () => {
const config = useConfig();
const queryClient = useQueryClient();
return useMutation(
(id) => fetch_(`${config.BACKEND_HOST}/api/webhook/setting/${id}`, {
(id) => fetch_(`${config.BACKEND_HOST}/api/setting/webhook/${id}`, {
method: "DELETE",
}),
{