import { Button, Dialog, DialogBody, DialogFooter, Tab, Tabs, } from '@blueprintjs/core'; import React from 'react'; import { useSelector } from 'react-redux'; import { i18n } from 'vj/utils'; import ProblemConfigEditor from './ProblemConfigEditor'; import ProblemConfigForm from './ProblemConfigForm'; import { ProblemConfigTree } from './ProblemConfigTree'; import { RootState } from './reducer'; interface Props { onSave: () => void } export default function ProblemConfig(props: Props) { const [selected, setSelected] = React.useState('basic'); const [open, setOpen] = React.useState(false); const valid = useSelector((state: RootState) => state.config.__valid); const errors = useSelector((state: RootState) => state.config.__errors, (a, b) => JSON.stringify(a) === JSON.stringify(b)); React.useEffect(() => { if (valid) setOpen(false); }, [valid]); return (<>
(t !== 'errors' && setSelected(t.toString()))} selectedTabId={valid ? selected : 'errors'}> } /> } /> {errors.map((i) => (
{i}
))}
} />
setOpen(false)}>

{i18n('Errors detected in the config. Confirm save?')}

} />
); }