import { Box, Stack, useTheme } from '@mui/material'; import SettingsIcon from '@mui/icons-material/Settings'; import Typography from '@mui/material/Typography'; import React, { ReactNode } from 'react'; import { FormikProps, FormikValues, useFormikContext } from 'formik'; import ToolOptionGroups, { ToolOptionGroup } from './ToolOptionGroups'; export type UpdateField = (field: Y, value: T[Y]) => void; export type GetGroupsType = ( formikProps: FormikProps & { updateField: UpdateField } ) => ToolOptionGroup[]; export default function ToolOptions({ children, getGroups, vertical }: { children?: ReactNode; getGroups: GetGroupsType | null; vertical?: boolean; }) { const theme = useTheme(); const formikContext = useFormikContext(); // Early return if no groups to display if (!getGroups) { return null; } const updateField: UpdateField = (field, value) => { formikContext.setFieldValue(field as string, value); }; return ( Tool options {children} ); }