import getEgg, { Egg, EggVariable } from '@/api/admin/eggs/getEgg'; import { Server } from '@/api/admin/servers/getServers'; import EggSelect from '@/components/admin/servers/EggSelect'; import NestSelect from '@/components/admin/servers/NestSelect'; import FormikSwitch from '@/components/elements/FormikSwitch'; import InputSpinner from '@/components/elements/InputSpinner'; import React, { useEffect, useState } from 'react'; import Button from '@/components/elements/Button'; import Input from '@/components/elements/Input'; import AdminBox from '@/components/admin/AdminBox'; import tw from 'twin.macro'; import { object } from 'yup'; import Field from '@/components/elements/Field'; import SpinnerOverlay from '@/components/elements/SpinnerOverlay'; import { Form, Formik, useFormikContext } from 'formik'; import { ApplicationStore } from '@/state'; import { Actions, useStoreActions } from 'easy-peasy'; import Label from '@/components/elements/Label'; import TitledGreyBox from '@/components/elements/TitledGreyBox'; // interface Values { // startupCommand: string; // image: string; // // eggId: number; // skipScripts: boolean; // } function ServerStartupLineContainer ({ egg }: { egg: Egg }) { const { isSubmitting } = useFormikContext(); return (
); } function ServerServiceContainer ({ server, egg, setEgg }: { server: Server, egg: Egg | null, setEgg: (value: Egg | null) => void }) { const { isSubmitting } = useFormikContext(); const [ nestId, setNestId ] = useState(server.nestId); return (
); } function ServerImageContainer () { const { isSubmitting } = useFormikContext(); return (
); } function ServerVariableContainer ({ variable, defaultValue }: { variable: EggVariable, defaultValue: string }) { const [ value, setValue ] = useState(''); useEffect(() => { setValue(defaultValue); }, [ defaultValue ]); return ( {variable.name}

}> setValue(e.target.value)} />

{variable.description}

); } export default function ServerStartupContainer ({ server }: { server: Server }) { const { clearFlashes } = useStoreActions((actions: Actions) => actions.flashes); const [ egg, setEgg ] = useState(null); useEffect(() => { getEgg(server.eggId, [ 'variables' ]) .then(egg => setEgg(egg)) .catch(error => console.error(error)); }, []); if (egg === null) { return (<>); } const submit = () => { clearFlashes('server'); }; return ( {({ isSubmitting, isValid }) => (
{egg !== null &&
{egg.relations.variables?.map((v, i) => ( v.eggId === v2.eggId && v.envVariable === v2.envVariable)?.serverValue || ''} /> ))}
}
)}
); }