From 9ea44385eec724808e8aad7bd36477f1a22628c2 Mon Sep 17 00:00:00 2001 From: hzhang Date: Fri, 25 Apr 2025 00:39:01 +0100 Subject: [PATCH] add: markdown permission setting improve: template --- src/AuthProvider.js | 1 - .../MarkdownTemplate/ParametersManager.js | 1 - .../MarkdownTemplate/TemplateSelector.js | 84 +++-- src/components/MarkdownTemplate/TypeEditor.js | 167 +++++---- src/components/Markdowns/MarkdownContent.js | 11 + src/components/Markdowns/MarkdownEditor.css | 19 +- src/components/Markdowns/MarkdownEditor.js | 168 ++++++++- src/components/Markdowns/MarkdownView.js | 4 +- src/components/Markdowns/TemplatedEditor.js | 325 +++++++++--------- src/components/Modals/MarkdownSettingModal.js | 10 + src/components/Navigations/SideNavigation.css | 25 +- src/components/Navigations/SideNavigation.js | 121 ++----- .../Navigations/SideTabs/TemplateTab.js | 62 ++++ .../Navigations/SideTabs/TreeTab.js | 88 +++++ .../MarkdownPermissionSettingPanel.js | 91 +++++ .../markdown-permission-setting-queries.js | 75 ++++ src/utils/request-utils.js | 13 +- 17 files changed, 893 insertions(+), 372 deletions(-) create mode 100644 src/components/Navigations/SideTabs/TemplateTab.js create mode 100644 src/components/Navigations/SideTabs/TreeTab.js create mode 100644 src/components/Settings/MarkdownSettings/MarkdownPermissionSettingPanel.js create mode 100644 src/utils/queries/markdown-permission-setting-queries.js diff --git a/src/AuthProvider.js b/src/AuthProvider.js index b2d22e2..ea23b79 100644 --- a/src/AuthProvider.js +++ b/src/AuthProvider.js @@ -1,4 +1,3 @@ -// src/AuthProvider.js import React, { createContext, useContext, useEffect, useMemo, useState } from "react"; import { UserManager } from "oidc-client-ts"; import { ConfigContext } from "./ConfigProvider"; diff --git a/src/components/MarkdownTemplate/ParametersManager.js b/src/components/MarkdownTemplate/ParametersManager.js index 5a701d5..692b969 100644 --- a/src/components/MarkdownTemplate/ParametersManager.js +++ b/src/components/MarkdownTemplate/ParametersManager.js @@ -74,7 +74,6 @@ const ParametersManager = ({ parameters, onChange }) => { updated[index].type = newType; setParameters(updated); onChange(updated); - console.log("updated", updated); }} /> diff --git a/src/components/MarkdownTemplate/TemplateSelector.js b/src/components/MarkdownTemplate/TemplateSelector.js index b998225..7109285 100644 --- a/src/components/MarkdownTemplate/TemplateSelector.js +++ b/src/components/MarkdownTemplate/TemplateSelector.js @@ -1,43 +1,59 @@ -import React, {useEffect, useState} from "react"; -import {useMarkdownTemplates} from "../../utils/queries/markdown-template-queries"; +import React, { useEffect, useState } from "react"; +import { useMarkdownTemplates } from "../../utils/queries/markdown-template-queries"; -const TemplateSelector = ({template, onChange}) => { - const {data:templates, isFetching: templatesAreFetching} = useMarkdownTemplates(); - const [_template, setTemplate] = useState(templates?.find(t => t.id === template.id) || { - title: "", - parameters: [], - layout: "" - }); - useEffect(() => { - setTemplate(templates?.find(t => t.id === template.id) || { +const TemplateSelector = ({ template, onChange }) => { + const { data: templates, isFetching: templatesAreFetching } = useMarkdownTemplates(); + const [_template, setTemplate] = useState( + templates?.find((t) => t.id === template?.id) || { title: "", parameters: [], - layout: "" - }); - }, [template]); - if(templatesAreFetching) { - return

Loading...

+ layout: "", + } + ); + + useEffect(() => { + setTemplate( + templates?.find((t) => t.id === template?.id) || { + title: "", + parameters: [], + layout: "", + } + ); + }, [template, templates]); + + if (templatesAreFetching) { + return

Loading...

; } return ( - +
+ +
+
+ +
+
+
); }; -export default TemplateSelector; \ No newline at end of file +export default TemplateSelector; diff --git a/src/components/MarkdownTemplate/TypeEditor.js b/src/components/MarkdownTemplate/TypeEditor.js index f06e312..84c973f 100644 --- a/src/components/MarkdownTemplate/TypeEditor.js +++ b/src/components/MarkdownTemplate/TypeEditor.js @@ -4,91 +4,116 @@ import TemplateSelector from './TemplateSelector'; const TypeEditor = ({ type, onChange }) => { const [_type, setType] = React.useState(type || {}); + + const updateType = (updated) => { + setType(updated); + onChange(updated); + }; + const renderExtraFields = () => { switch (_type.base_type) { case 'enum': - return { - const updated = { - ..._type, - definition: { - ..._type.definition, - enums: newEnums - } - }; - setType(updated); - onChange(updated); - }} - />; - case 'list': return ( -
- { - const updated = {..._type, extend_type: extendType}; - setType(updated); - onChange(updated); - }} - /> -