import { Settings } from 'lucide-react'; import { Form, useFormikContext } from 'formik'; import { StackType } from '@/react/common/stacks/types'; import { baseStackWebhookUrl } from '@/portainer/helpers/webhookHelper'; import { GitForm } from '@/react/portainer/gitops/GitForm'; import { useIsStandalone } from '@/react/docker/proxy/queries/useInfo'; import { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment'; import { getPlatformType } from '@/react/portainer/environments/utils'; import { PlatformType } from '@/react/portainer/environments/types'; import { StackName } from '@/react/kubernetes/DeployView/StackName/StackName'; import { Modal } from '@@/modals/Modal'; import { TextTip } from '@@/Tip/TextTip'; import { Button, LoadingButton } from '@@/buttons'; import { WidgetIcon } from '@@/Widget/WidgetIcon'; import { Checkbox } from '@@/form-components/Checkbox'; import { StackEnvironmentVariablesPanel } from '@@/form-components/EnvironmentVariablesFieldset'; import { PruneField } from '../PruneField'; import { FormValues } from './types'; export function InnerForm({ stackName, stackType, onDismiss, isSubmitting, webhookId, }: { stackName: string; stackType: StackType; onDismiss: () => void; isSubmitting: boolean; webhookId: string; }) { const environmentQuery = useCurrentEnvironment(); const platform = environmentQuery.data ? getPlatformType(environmentQuery.data.Type) : null; const isDocker = platform === PlatformType.Docker; const isDockerStandalone = useIsStandalone(environmentQuery.data?.Id, { enabled: isDocker, }); const { values, setFieldValue, submitForm, errors } = useFormikContext(); return (

Edit Git settings — {stackName}

} />
{stackType === StackType.Kubernetes && ( <> { setFieldValue('kube.name', value); setFieldValue('redeployNow', true); }} error={errors.kube?.name} /> Changing the stack name requires a redeploy to update the deployed resources. )} { Object.entries(partial).forEach(([key, val]) => { setFieldValue(`git.${key}`, val); }); }} environmentType={getPlatformNameForGitForm()} isForcePullVisible={stackType !== StackType.Kubernetes} baseWebhookUrl={baseStackWebhookUrl()} webhookId={webhookId} webhooksDocs="/user/docker/stacks/webhooks" isAuthExplanationVisible isAdditionalFilesFieldVisible isAutoUpdateVisible errors={errors.git} deployMethod={ stackType === StackType.Kubernetes ? 'manifest' : 'compose' } isDockerStandalone={isDockerStandalone} /> setFieldValue('env', value)} showHelpMessage isFoldable errors={errors.env} /> {isDocker && ( setFieldValue('prune', value)} /> )}
setFieldValue('redeployNow', e.target.checked) } data-cy="redeploy-now-checkbox" /> Save settings
); function getPlatformNameForGitForm(): 'DOCKER' | 'KUBERNETES' | undefined { if (platform === PlatformType.Docker) { return 'DOCKER'; } if (platform === PlatformType.Kubernetes) { return 'KUBERNETES'; } return undefined; } }