import updateEgg from '@/api/admin/eggs/updateEgg'; import EggDeleteButton from '@/components/admin/nests/eggs/EggDeleteButton'; import Button from '@/components/elements/Button'; import Editor from '@/components/elements/Editor'; import Field, { TextareaField } from '@/components/elements/Field'; import Input from '@/components/elements/Input'; import Label from '@/components/elements/Label'; import SpinnerOverlay from '@/components/elements/SpinnerOverlay'; import useFlash from '@/plugins/useFlash'; import { jsonLanguage } from '@codemirror/lang-json'; import { faEgg, faTerminal } from '@fortawesome/free-solid-svg-icons'; import React from 'react'; import AdminBox from '@/components/admin/AdminBox'; import { Egg } from '@/api/admin/eggs/getEgg'; import { useHistory } from 'react-router-dom'; import tw from 'twin.macro'; import { object } from 'yup'; import { Form, Formik, FormikHelpers, useFormikContext } from 'formik'; function EggInformationContainer () { const { isSubmitting } = useFormikContext(); return ( ); } function EggDetailsContainer ({ egg }: { egg: Egg }) { return (
); } function EggStartupContainer ({ className }: { className?: string }) { const { isSubmitting } = useFormikContext(); return ( ); } function EggImageContainer () { const { isSubmitting } = useFormikContext(); return ( ); } function EggStopContainer () { const { isSubmitting } = useFormikContext(); return ( ); } function EggProcessContainer ({ className, egg }: { className?: string, egg: Egg }) { const { isSubmitting } = useFormikContext(); return (
); } interface Values { name: string; description: string; startup: string; dockerImages: string; stopCommand: string; } export default function EggSettingsContainer ({ egg }: { egg: Egg }) { const history = useHistory(); const { clearFlashes, clearAndAddHttpError } = useFlash(); const submit = (values: Values, { setSubmitting }: FormikHelpers) => { clearFlashes('egg'); // TODO: Send data from code blocks. updateEgg(egg.id, { ...values, dockerImages: values.dockerImages.split('\n') }) .catch(error => { console.error(error); clearAndAddHttpError({ key: 'egg', error }); }) .then(() => setSubmitting(false)); }; return ( {({ isSubmitting, isValid }) => (
history.push('/admin/eggs')} />
)}
); }