fix: template defects

This commit is contained in:
h z
2025-04-17 21:44:45 +01:00
parent 947b59e3ea
commit 137ea649f8
20 changed files with 323 additions and 280 deletions

View File

@@ -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 (<p>Loading...</p>);
}
console.log("template", template);
console.log("selectedTemplateId", selectedTemplateId);
return setting ? (
<div className="box" style={{marginTop: "1rem"}}>
<h4 className="title is-5">Template Setting</h4>
@@ -52,12 +64,14 @@ const MarkdownTemplateSettingPanel = ({markdownSetting, onClose}) => {
<label className="label">Use Template</label>
<div className="select is-fullwidth">
<select
value={selectedTemplate.title}
onChange={(e) => setSelectedTemplate(e.target.value)}
value={selectedTemplateId}
onChange={(e) => {
setSelectedTemplateId(e.target.value);
}}
>
<option value="">(default)</option>
{templates.map((_template, index) => (
<option key={index} value={_template}>{_template.title}</option>
<option key={index} value={_template.id}>{_template.title}</option>
))}
</select>
@@ -77,7 +91,7 @@ const MarkdownTemplateSettingPanel = ({markdownSetting, onClose}) => {
type="button"
onClick={handleCreateTemplateSetting}
>
Create Template Setting
Create Template Setting
</button>
);
};