web/src/components/task/task-sidebar-flow/edit-annotation-modal.tsx (88 lines of code) (raw):

// temporary_disabled_rules /* eslint-disable @typescript-eslint/no-unused-vars */ import React, { FC } from 'react'; import { ModalBlocker, ModalWindow, FlexSpacer, ModalHeader, FlexRow, LabeledInput, Button, ScrollBars, ModalFooter, Panel, FlexCell, TextArea, useForm, Checkbox } from '@epam/loveship'; import styles from './task-sidebar-flow.module.scss'; export interface EditAnnotation { text?: string | undefined; comment?: string | undefined; few_shot_learning?: boolean | undefined; } export const EditAnnotationModal: FC<any> = ({ abort, handleAnnotationChange, annotationValues, ...modalProps }) => { const { lens, save } = useForm<EditAnnotation>({ value: { text: annotationValues.text, comment: annotationValues.comment, few_shot_learning: annotationValues.few_shot_learning }, onSave: (value) => { handleAnnotationChange(value); abort(); return Promise.resolve({ form: value }); } }); return ( <ModalBlocker {...modalProps} abort={abort} blockerShadow="dark"> <ModalWindow> <ModalHeader title="Edit annotation" onClose={abort} /> <ScrollBars> <Panel> <FlexRow padding="24" vPadding="12"> <FlexCell grow={1}> <LabeledInput label="Text" {...lens.prop('text').toProps()}> <TextArea autoSize {...lens.prop('text').toProps()} cx={styles.textArea} /> </LabeledInput> </FlexCell> </FlexRow> <FlexRow padding="24" vPadding="12"> <FlexCell grow={1}> <LabeledInput label="Comment" {...lens.prop('comment').toProps()}> <TextArea autoSize {...lens.prop('comment').toProps()} cx={styles.textArea} /> </LabeledInput> </FlexCell> </FlexRow> <FlexRow padding="24" vPadding="12"> <FlexCell grow={1}> <Checkbox label="Few-Shot Learning" {...lens.prop('few_shot_learning').toProps()} cx={styles.fewShotLearning} /> </FlexCell> </FlexRow> <ModalFooter> <FlexSpacer /> <Button onClick={abort} caption="Cancel" /> <Button caption="Confirm" onClick={save} /> </ModalFooter> <FlexSpacer /> </Panel> </ScrollBars> </ModalWindow> </ModalBlocker> ); };