import { Field, Form, Formik } from 'formik'; import { object, SchemaOf, string } from 'yup'; import { ExternalLink } from 'lucide-react'; import { useUpgradeEditionMutation } from '@/react/portainer/system/useUpgradeEditionMutation'; import { notifySuccess } from '@/portainer/services/notifications'; import { Button, LoadingButton } from '@@/buttons'; import { FormControl } from '@@/form-components/FormControl'; import { Input } from '@@/form-components/Input'; import { Modal } from '@@/modals/Modal'; interface FormValues { license: string; } const initialValues: FormValues = { license: '', }; export function UploadLicenseDialog({ onDismiss, goToLoading, }: { onDismiss: () => void; goToLoading: () => void; }) { const upgradeMutation = useUpgradeEditionMutation(); return ( Upgrade Portainer} /> {({ errors }) => (

Please enter your Portainer License below

Start upgrade
)}
); function handleSubmit(values: FormValues) { upgradeMutation.mutate(values, { onSuccess() { notifySuccess('Starting upgrade', 'License validated successfully'); goToLoading(); }, }); } } function validation(): SchemaOf { return object().shape({ license: string() .required('License is required') .matches(/^\d-.+/, 'License is invalid'), }); }