import { Form, useFormikContext } from 'formik'; import { useMemo } from 'react'; import { FormActions } from '@@/form-components/FormActions'; import { FormControl } from '@@/form-components/FormControl'; import { Option, PortainerSelect } from '@@/form-components/PortainerSelect'; import { FormSection } from '@@/form-components/FormSection'; import { Chart } from '../types'; import { useHelmChartValues } from '../queries/useHelmChartValues'; import { HelmValuesInput } from '../components/HelmValuesInput'; import { HelmInstallFormValues } from './types'; type Props = { selectedChart: Chart; namespace?: string; name?: string; versionOptions: Option[]; }; export function HelmInstallInnerForm({ selectedChart, namespace, name, versionOptions, }: Props) { const { values, setFieldValue, isSubmitting } = useFormikContext(); const chartValuesRefQuery = useHelmChartValues({ chart: selectedChart.name, repo: selectedChart.repo, version: values?.version, }); const selectedVersion = useMemo( () => versionOptions.find((v) => v.value === values.version)?.value ?? versionOptions[0]?.value, [versionOptions, values.version] ); return (
value={selectedVersion} options={versionOptions} onChange={(version) => { if (version) { setFieldValue('version', version); } }} data-cy="helm-version-input" /> setFieldValue('values', values)} valuesRef={chartValuesRefQuery.data?.values ?? ''} isValuesRefLoading={chartValuesRefQuery.isInitialLoading} />
); }