diff --git a/app/react/edge/edge-stacks/CreateView/CreateForm.tsx b/app/react/edge/edge-stacks/CreateView/CreateForm.tsx index 544cb46f0..e09e827c1 100644 --- a/app/react/edge/edge-stacks/CreateView/CreateForm.tsx +++ b/app/react/edge/edge-stacks/CreateView/CreateForm.tsx @@ -120,10 +120,10 @@ function useTemplate( id: number | undefined ) { const customTemplateQuery = useCustomTemplate(id, { - enabled: !!id && type === 'custom', + enabled: type === 'custom', }); const appTemplateQuery = useAppTemplate(id, { - enabled: !!id && type === 'app', + enabled: type === 'app', }); return { diff --git a/app/react/edge/edge-stacks/CreateView/DockerComposeForm.tsx b/app/react/edge/edge-stacks/CreateView/DockerComposeForm.tsx index 3ce03d5d0..fe24a2888 100644 --- a/app/react/edge/edge-stacks/CreateView/DockerComposeForm.tsx +++ b/app/react/edge/edge-stacks/CreateView/DockerComposeForm.tsx @@ -13,12 +13,12 @@ import { edgeStackTemplate, upload, } from '@@/BoxSelector/common-options/build-methods'; -import { WebEditorForm } from '@@/WebEditorForm'; import { FileUploadForm } from '@@/form-components/FileUpload'; import { TemplateFieldset } from './TemplateFieldset/TemplateFieldset'; import { useRenderTemplate } from './useRenderTemplate'; import { DockerFormValues } from './types'; +import { DockerContentField } from './DockerContentField'; const buildMethods = [editor, upload, git, edgeStackTemplate] as const; @@ -78,26 +78,12 @@ export function DockerComposeForm({ {(method === editor.value || (method === edgeStackTemplate.value && template)) && ( - handleChange({ fileContent: value })} - yaml - placeholder="Define or paste the content of your docker compose file here" - error={errors?.fileContent} readonly={method === edgeStackTemplate.value && !!template?.GitConfig} - data-cy="stack-creation-editor" - > - You can get more information about Compose file format in the{' '} - - official documentation - - . - + error={errors?.fileContent} + /> )} {method === upload.value && ( diff --git a/app/react/edge/edge-stacks/CreateView/DockerContentField.tsx b/app/react/edge/edge-stacks/CreateView/DockerContentField.tsx new file mode 100644 index 000000000..4499e6dfc --- /dev/null +++ b/app/react/edge/edge-stacks/CreateView/DockerContentField.tsx @@ -0,0 +1,36 @@ +import { WebEditorForm } from '@@/WebEditorForm'; + +export function DockerContentField({ + error, + onChange, + readonly, + value, +}: { + value: string; + onChange: (value: string) => void; + error?: string; + readonly?: boolean; +}) { + return ( + + You can get more information about Compose file format in the{' '} + + official documentation + + . + + ); +} diff --git a/app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateSelector.tsx b/app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateSelector.tsx index ef291e1e3..e8bca4456 100644 --- a/app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateSelector.tsx +++ b/app/react/edge/edge-stacks/CreateView/TemplateFieldset/TemplateSelector.tsx @@ -24,7 +24,7 @@ export function TemplateSelector({ ) => void; error?: string; }) { - const { options, getTemplate } = useOptions(); + const { options, getTemplate, selectedValue } = useOptions(value); return ( @@ -32,10 +32,8 @@ export function TemplateSelector({ inputId="template_selector" formatGroupLabel={GroupLabel} placeholder="Select an Edge stack template" - value={{ - templateId: value.templateId, - type: value.type, - }} + options={options} + value={selectedValue} onChange={(value) => { if (!value) { onChange(undefined, undefined); @@ -48,14 +46,19 @@ export function TemplateSelector({ } onChange(getTemplate({ type, id: templateId }), type); }} - options={options} data-cy="edge-stacks-create-template-selector" /> ); } -function useOptions() { +interface Option { + label: string; + templateId?: number; + type: 'app' | 'custom'; +} + +function useOptions(value: SelectedTemplateValue) { const customTemplatesQuery = useCustomTemplates({ params: { edge: true, @@ -71,43 +74,75 @@ function useOptions() { ), }); + const appTemplateOptions: Array