import { useState } from 'react'; import { ArrowUp } from 'lucide-react'; import { withReactQuery } from '@/react-tools/withReactQuery'; import { withCurrentUser } from '@/react-tools/withCurrentUser'; import { Modal, OnSubmit, openModal } from '@@/modals'; import { Button } from '@@/buttons'; import { Option, PortainerSelect } from '@@/form-components/PortainerSelect'; import { Input } from '@@/form-components/Input'; import { CodeEditor } from '@@/CodeEditor'; import { FormControl } from '@@/form-components/FormControl'; import { WidgetTitle } from '@@/Widget'; import { Checkbox } from '@@/form-components/Checkbox'; import { UpdateHelmReleasePayload } from '../queries/useUpdateHelmReleaseMutation'; import { ChartVersion } from '../queries/useHelmRepositories'; interface Props { onSubmit: OnSubmit; values: UpdateHelmReleasePayload; versions: ChartVersion[]; } export function UpgradeHelmModal({ values, versions, onSubmit }: Props) { const versionOptions: Option[] = versions.map((version) => { const isCurrentVersion = version.Version === values.version; const label = `${version.Repo}@${version.Version}${ isCurrentVersion ? ' (current)' : '' }`; return { label, value: version, }; }); const defaultVersion = versionOptions.find((v) => v.value.Version === values.version)?.value || versionOptions[0]?.value; const [version, setVersion] = useState(defaultVersion); const [userValues, setUserValues] = useState(values.values || ''); const [atomic, setAtomic] = useState(false); return ( onSubmit()} size="lg" className="flex flex-col h-[80vh] px-0" aria-label="upgrade-helm" > } />
value={version} options={versionOptions} onChange={(version) => { if (version) { setVersion(version); } }} data-cy="helm-version-input" /> setAtomic(e.target.checked)} /> setUserValues(value)} height="50vh" type="yaml" data-cy="helm-user-values-editor" placeholder="Define or paste the content of your values yaml file here" />
); } export async function openUpgradeHelmModal( values: UpdateHelmReleasePayload, versions: ChartVersion[] ) { return openModal(withReactQuery(withCurrentUser(UpgradeHelmModal)), { values, versions, }); }