import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Button, Form, FormGroup, ModalBody, ModalFooter, ModalHeader, TextInput } from '@carbon/react'; import { showSnackbar } from '@openmrs/esm-framework'; import type { Schema } from '@types'; interface PageModalProps { closeModal: () => void; schema: Schema; onSchemaChange: (schema: Schema) => void; } const PageModal: React.FC = ({ closeModal, schema, onSchemaChange }) => { const { t } = useTranslation(); const [pageTitle, setPageTitle] = useState(''); const handleUpdatePageTitle = () => { updatePages(); closeModal(); }; const updatePages = () => { try { if (pageTitle) { schema.pages.push({ label: pageTitle, sections: [], }); onSchemaChange({ ...schema }); setPageTitle(''); } showSnackbar({ title: t('success', 'Success!'), kind: 'success', isLowContrast: true, subtitle: t('pageCreated', 'New page created'), }); } catch (error) { if (error instanceof Error) { showSnackbar({ title: t('errorCreatingPage', 'Error creating page'), kind: 'error', subtitle: error?.message, }); } } }; return ( <>
event.preventDefault()}> ) => setPageTitle(event.target.value)} />
); }; export default PageModal;