6 Commits
feat ... main

Author SHA1 Message Date
ssa
f7287186f2 Merge pull request 'feat' (#10) from feat into main
Some checks failed
CI / build-and-test (push) Has been cancelled
Deploy to Server / deploy (push) Has been cancelled
Build Docker Image / build (push) Has been cancelled
Reviewed-on: #10
2026-02-20 17:33:44 +03:00
ssa
d87d86bacb Merge pull request 'feat: JSON comments support + full-height layout' (#9) from feat into main
Some checks failed
CI / build-and-test (push) Has been cancelled
Deploy to Server / deploy (push) Has been cancelled
Build Docker Image / build (push) Has been cancelled
Reviewed-on: #9
2026-02-20 16:42:18 +03:00
ssa
75ed50961f Merge pull request 'feat' (#8) from feat into main
Some checks failed
CI / build-and-test (push) Has been cancelled
Deploy to Server / deploy (push) Has been cancelled
Build Docker Image / build (push) Has been cancelled
Reviewed-on: #8
2026-02-20 16:29:37 +03:00
ssa
76b54cff3b Merge pull request 'feat' (#7) from feat into main
Some checks failed
CI / build-and-test (push) Has been cancelled
Deploy to Server / deploy (push) Has been cancelled
Build Docker Image / build (push) Has been cancelled
Reviewed-on: #7
2026-02-20 15:45:41 +03:00
ssa
31d9e388f8 Merge pull request 'feat' (#6) from feat into main
Some checks failed
CI / build-and-test (push) Has been cancelled
Build Docker Image / build (push) Has been cancelled
Deploy to Server / deploy (push) Failing after 17m35s
Reviewed-on: #6
2026-02-20 13:58:50 +03:00
ssa
bc796f2aa4 Merge pull request 'rewrite' (#5) from rewrite into main
Reviewed-on: #5
2026-02-19 23:48:41 +03:00
2 changed files with 19 additions and 23 deletions

View File

@@ -141,10 +141,10 @@ export function ConfigTemplateEditor({ config, onSaved }: ConfigTemplateEditorPr
const isValidJson = jsonError === null; const isValidJson = jsonError === null;
return ( return (
<div className="config-template-editor animate-fade-in h-full flex flex-col"> <div className="config-template-editor animate-fade-in">
{mode === 'view' ? ( {mode === 'view' ? (
<div className="space-y-3 flex flex-col h-full"> <div className="space-y-3">
<div className="flex-shrink-0 flex items-center justify-between flex-wrap gap-3"> <div className="flex items-center justify-between flex-wrap gap-3">
<div className="flex items-center gap-2 flex-wrap"> <div className="flex items-center gap-2 flex-wrap">
<Badge variant="success">View Mode</Badge> <Badge variant="success">View Mode</Badge>
{hasValidationWarnings && ( {hasValidationWarnings && (
@@ -164,13 +164,11 @@ export function ConfigTemplateEditor({ config, onSaved }: ConfigTemplateEditorPr
</Button> </Button>
</div> </div>
<div className="flex-1 min-h-0"> <CodeBlock code={config.template.content || '{}'} language="json" maxHeight="500px" />
<CodeBlock code={config.template.content || '{}'} language="json" maxHeight="100%" />
</div>
</div> </div>
) : ( ) : (
<div className="space-y-3 flex flex-col h-full"> <div className="space-y-3">
<div className="flex-shrink-0 flex items-center gap-2 flex-wrap"> <div className="flex items-center gap-2 flex-wrap">
<Button <Button
variant="success" variant="success"
size="sm" size="sm"
@@ -213,7 +211,7 @@ export function ConfigTemplateEditor({ config, onSaved }: ConfigTemplateEditorPr
</div> </div>
{jsonError && ( {jsonError && (
<div className="bg-red-50 border border-red-200 rounded-lg p-3 flex-shrink-0"> <div className="bg-red-50 border border-red-200 rounded-lg p-3">
<p className="text-sm text-red-700 font-mono">{jsonError}</p> <p className="text-sm text-red-700 font-mono">{jsonError}</p>
</div> </div>
)} )}
@@ -223,8 +221,8 @@ export function ConfigTemplateEditor({ config, onSaved }: ConfigTemplateEditorPr
w-full p-3 font-mono text-sm rounded-lg border-2 w-full p-3 font-mono text-sm rounded-lg border-2
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent
transition-all duration-200 transition-all duration-200
${isValidJson ${isValidJson
? 'border-green-300 bg-green-50' ? 'border-green-300 bg-green-50'
: 'border-red-300 bg-red-50' : 'border-red-300 bg-red-50'
} }
`} `}
@@ -232,7 +230,7 @@ export function ConfigTemplateEditor({ config, onSaved }: ConfigTemplateEditorPr
onChange={(e) => handleDraftChange(e.target.value)} onChange={(e) => handleDraftChange(e.target.value)}
onKeyDown={handleKeyDown} onKeyDown={handleKeyDown}
rows={20} rows={20}
style={{ whiteSpace: 'pre', overflowX: 'auto', flex: '1 1 auto', minHeight: '200px' }} style={{ whiteSpace: 'pre', overflowX: 'auto' }}
spellCheck={false} spellCheck={false}
/> />
</div> </div>

View File

@@ -59,10 +59,10 @@ export function Content({ config, env, onTemplateSaved }: ContentProps) {
function ContentParams({ env }: { env: Env }) { function ContentParams({ env }: { env: Env }) {
const xml = Builder.getEnv(env).build(); const xml = Builder.getEnv(env).build();
return ( return (
<div className="animate-fade-in h-full"> <div className="animate-fade-in">
<CodeBlock code={xml} language="xml" maxHeight="100%" /> <CodeBlock code={xml} language="xml" maxHeight="500px" />
</div> </div>
); );
} }
@@ -79,8 +79,8 @@ ${templateContent}
</engine>`; </engine>`;
return ( return (
<div className="animate-fade-in h-full"> <div className="animate-fade-in">
<CodeBlock code={xml} language="xml" maxHeight="100%" /> <CodeBlock code={xml} language="xml" maxHeight="500px" />
</div> </div>
); );
} }
@@ -97,8 +97,8 @@ function ContentTest({ config, env }: { config: Config; env: Env }) {
})); }));
return ( return (
<div className="animate-fade-in space-y-4 h-full flex flex-col"> <div className="animate-fade-in space-y-4">
<div className="flex-shrink-0 flex items-center gap-2"> <div className="flex items-center gap-2">
<label className="text-sm font-medium text-slate-700">Select Environment:</label> <label className="text-sm font-medium text-slate-700">Select Environment:</label>
<select <select
className="px-3 py-1.5 border border-slate-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500" className="px-3 py-1.5 border border-slate-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
@@ -110,10 +110,8 @@ function ContentTest({ config, env }: { config: Config; env: Env }) {
))} ))}
</select> </select>
</div> </div>
<div className="flex-1 min-h-0"> <CodeBlock code={filledTemplate} language="json" maxHeight="500px" />
<CodeBlock code={filledTemplate} language="json" maxHeight="100%" />
</div>
</div> </div>
); );
} }