improve: update css
This commit is contained in:
@@ -5,6 +5,7 @@ const LayoutEditor = ({layout, onChange}) => {
|
|||||||
return (
|
return (
|
||||||
<textarea
|
<textarea
|
||||||
className="textarea"
|
className="textarea"
|
||||||
|
style={{ height: "60vh" }}
|
||||||
value={_layout}
|
value={_layout}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
setLayout(e.target.value);
|
setLayout(e.target.value);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ const MarkdownTemplateEditor = () => {
|
|||||||
<div className="columns is-variable is-8">
|
<div className="columns is-variable is-8">
|
||||||
<div className="column">
|
<div className="column">
|
||||||
<h3 className="title is-5">Layout</h3>
|
<h3 className="title is-5">Layout</h3>
|
||||||
|
|
||||||
<div className="box">
|
<div className="box">
|
||||||
<LayoutEditor
|
<LayoutEditor
|
||||||
layout={layout}
|
layout={layout}
|
||||||
@@ -72,15 +73,15 @@ const MarkdownTemplateEditor = () => {
|
|||||||
onChange={(newLayout) => setLayout(newLayout)}
|
onChange={(newLayout) => setLayout(newLayout)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div className="column">
|
<div className="column">
|
||||||
<h3 className="title is-5">Parameters</h3>
|
<h3 className="title is-5">Parameters</h3>
|
||||||
<div className="box">
|
|
||||||
<ParametersManager
|
<ParametersManager
|
||||||
parameters={parameters}
|
parameters={parameters}
|
||||||
onChange={(newParameters) => setParameters(newParameters)}
|
onChange={(newParameters) => setParameters(newParameters)}
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="field is-grouped">
|
<div className="field is-grouped">
|
||||||
|
|||||||
@@ -3,18 +3,36 @@ import TypeEditor from "./TypeEditor";
|
|||||||
|
|
||||||
const ParametersManager = ({ parameters, onChange }) => {
|
const ParametersManager = ({ parameters, onChange }) => {
|
||||||
const [_parameters, setParameters] = useState(parameters || []);
|
const [_parameters, setParameters] = useState(parameters || []);
|
||||||
|
const [expandedStates, setExpandedStates] = useState({});
|
||||||
|
|
||||||
const handleAdd = () => {
|
const handleAdd = () => {
|
||||||
const updated = [
|
const updated = [
|
||||||
..._parameters,
|
..._parameters,
|
||||||
{
|
{
|
||||||
name: "",
|
name: "",
|
||||||
type: { base_type: "string" }
|
type: {
|
||||||
|
base_type: "string",
|
||||||
|
definition: {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
setParameters(updated);
|
setParameters(updated);
|
||||||
onChange(updated);
|
onChange(updated);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleTypeChange = (index, newType) => {
|
||||||
|
const updated = [..._parameters];
|
||||||
|
if (newType.base_type === "list" && !newType.extend_type) {
|
||||||
|
newType.extend_type = {
|
||||||
|
base_type: "string",
|
||||||
|
definition: {}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
updated[index].type = newType;
|
||||||
|
setParameters(updated);
|
||||||
|
onChange(updated);
|
||||||
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setParameters(parameters);
|
setParameters(parameters);
|
||||||
}, [parameters]);
|
}, [parameters]);
|
||||||
@@ -33,6 +51,13 @@ const ParametersManager = ({ parameters, onChange }) => {
|
|||||||
onChange(updated);
|
onChange(updated);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const toggleExpand = (index) => {
|
||||||
|
setExpandedStates(prev => ({
|
||||||
|
...prev,
|
||||||
|
[index]: !prev[index]
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="box">
|
<div className="box">
|
||||||
<div className="field">
|
<div className="field">
|
||||||
@@ -42,11 +67,12 @@ const ParametersManager = ({ parameters, onChange }) => {
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div style={{ maxHeight: "50vh", overflowY: "auto" }}>
|
||||||
{_parameters.map((param, index) => (
|
{_parameters.map((param, index) => (
|
||||||
<div key={index} className="box" style={{ marginBottom: "1rem" }}>
|
<div key={index} className="box" style={{ marginBottom: "0.5rem" }}>
|
||||||
<div className="field is-grouped is-grouped-multiline">
|
<div className="field is-grouped is-grouped-multiline">
|
||||||
<div className="control is-expanded">
|
<div className="control is-expanded">
|
||||||
<label className="label">Name:</label>
|
<label className="label mb-1">Name:</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
className="input"
|
className="input"
|
||||||
@@ -65,22 +91,28 @@ const ParametersManager = ({ parameters, onChange }) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="field">
|
<div className="field">
|
||||||
<label className="label">Type:</label>
|
<div className="is-flex is-justify-content-space-between is-align-items-center mb-1">
|
||||||
|
<label className="label mb-0">Type:</label>
|
||||||
|
<button
|
||||||
|
className="button is-small"
|
||||||
|
onClick={() => toggleExpand(index)}
|
||||||
|
>
|
||||||
|
{expandedStates[index] ? "-" : "+"}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
{expandedStates[index] && (
|
||||||
<div className="control">
|
<div className="control">
|
||||||
<TypeEditor
|
<TypeEditor
|
||||||
type={param.type}
|
type={param.type}
|
||||||
onChange={(newType) => {
|
onChange={(newType) => handleTypeChange(index, newType)}
|
||||||
const updated = [..._parameters];
|
|
||||||
updated[index].type = newType;
|
|
||||||
setParameters(updated);
|
|
||||||
onChange(updated);
|
|
||||||
}}
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ const MarkdownEditor = () => {
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<TemplatedEditor
|
<TemplatedEditor
|
||||||
style={{height: "70vh"}}
|
style={{height: "40vh"}}
|
||||||
content={content}
|
content={content}
|
||||||
template={!markdown?.id ? selectedTemplate : template}
|
template={!markdown?.id ? selectedTemplate : template}
|
||||||
onContentChanged={(k, v) => setContent(
|
onContentChanged={(k, v) => setContent(
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ const TemplatedEditorComponent = ({ variable, value, namespace, onContentChanged
|
|||||||
<label className="label">{__namespace}</label>
|
<label className="label">{__namespace}</label>
|
||||||
<div className="control">
|
<div className="control">
|
||||||
<textarea
|
<textarea
|
||||||
|
style={{maxHeight: "10vh"}}
|
||||||
className="textarea"
|
className="textarea"
|
||||||
value={value}
|
value={value}
|
||||||
onChange={(e) => onContentChanged(variable.name, e.target.value)}
|
onChange={(e) => onContentChanged(variable.name, e.target.value)}
|
||||||
@@ -152,7 +153,7 @@ const TemplatedEditorComponent = ({ variable, value, namespace, onContentChanged
|
|||||||
return <>{renderField()}</>;
|
return <>{renderField()}</>;
|
||||||
};
|
};
|
||||||
|
|
||||||
const TemplatedEditor = ({ content, template, onContentChanged }) => {
|
const TemplatedEditor = ({ content, template, onContentChanged, style }) => {
|
||||||
const tpl = template || {
|
const tpl = template || {
|
||||||
parameters: [{ name: "markdown", type: { base_type: "markdown", definition: {} } }],
|
parameters: [{ name: "markdown", type: { base_type: "markdown", definition: {} } }],
|
||||||
layout: "<markdown/>",
|
layout: "<markdown/>",
|
||||||
@@ -160,7 +161,17 @@ const TemplatedEditor = ({ content, template, onContentChanged }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="box">
|
<div className="box" style={{
|
||||||
|
...style,
|
||||||
|
display: "flex",
|
||||||
|
flexDirection: "column",
|
||||||
|
overflow: "hidden"
|
||||||
|
}}>
|
||||||
|
<div style={{
|
||||||
|
flex: 1,
|
||||||
|
overflowY: "auto",
|
||||||
|
padding: "1rem"
|
||||||
|
}}>
|
||||||
{tpl.parameters.map((variable, idx) => (
|
{tpl.parameters.map((variable, idx) => (
|
||||||
<TemplatedEditorComponent
|
<TemplatedEditorComponent
|
||||||
key={idx}
|
key={idx}
|
||||||
@@ -171,6 +182,7 @@ const TemplatedEditor = ({ content, template, onContentChanged }) => {
|
|||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user