import { bool, object, SchemaOf, string } from 'yup'; import { FormControl } from '@@/form-components/FormControl'; import { FormSection } from '@@/form-components/FormSection'; import { SwitchField } from '@@/form-components/SwitchField'; import { RuntimeSelector } from './RuntimeSelector'; export interface Values { privileged: boolean; init: boolean; type: string; } export function RuntimeSection({ values, onChange, allowPrivilegedMode, isInitFieldVisible, }: { values: Values; onChange: (values: Values) => void; allowPrivilegedMode: boolean; isInitFieldVisible: boolean; }) { return ( {allowPrivilegedMode && ( handleChange({ privileged })} /> )} {isInitFieldVisible && ( handleChange({ init })} /> )} handleChange({ type })} /> ); function handleChange(newValues: Partial) { onChange({ ...values, ...newValues }); } } export function runtimeValidation(): SchemaOf { return object({ privileged: bool().default(false), init: bool().default(false), type: string().default(''), }); }