import { useState, useRef } from 'react' import { useLocation } from 'react-router-dom' import { Space, Flex, Card } from 'antd' import loglevel from 'loglevel' import config from '../../../../config.js' import useCollapseState from '../../hooks/useCollapseState.jsx' import NotesPanel from '../../common/NotesPanel.jsx' import InfoCollapse from '../../common/InfoCollapse.jsx' import ViewButton from '../../common/ViewButton.jsx' import NoteIcon from '../../../Icons/NoteIcon.jsx' import ObjectForm from '../../common/ObjectForm.jsx' import EditButtons from '../../common/EditButtons.jsx' import LockIndicator from '../../common/LockIndicator.jsx' import ActionHandler from '../../common/ActionHandler.jsx' import ObjectActions from '../../common/ObjectActions.jsx' import ScrollBox from '../../common/ScrollBox.jsx' import TemplateEditor from '../../common/TemplateEditor.jsx' const log = loglevel.getLogger('DocumentTemplateDesign') log.setLevel(config.logLevel) const DocumentTemplateDesign = () => { const location = useLocation() const objectFormRef = useRef(null) const actionHandlerRef = useRef(null) const documentTemplateId = new URLSearchParams(location.search).get( 'documentTemplateId' ) const [collapseState, updateCollapseState] = useCollapseState( 'DocumentTemplateDesign', { preview: true, editor: true, notes: true, auditLogs: true } ) const [objectFormState, setEditFormState] = useState({ isEditing: false, editLoading: false, formValid: false, locked: false, loading: false, objectData: {} }) const actions = { edit: () => { objectFormRef?.current.startEditing() return false }, cancelEdit: () => { objectFormRef?.current.cancelEditing() return true }, finishEdit: () => { objectFormRef?.current.handleUpdate() return true } } return ( { actionHandlerRef.current.callAction('finishEdit') }} cancelEditing={() => { actionHandlerRef.current.callAction('cancelEdit') }} startEditing={() => { actionHandlerRef.current.callAction('edit') }} editLoading={objectFormState.editLoading} formValid={objectFormState.formValid} disabled={objectFormState.lock?.locked || objectFormState.loading} loading={objectFormState.editLoading} /> { setEditFormState((prev) => ({ ...prev, ...state })) }} > {({ loading, isEditing, objectData }) => { return ( ) }} } active={collapseState.notes} onToggle={(expanded) => updateCollapseState('notes', expanded)} collapseKey='notes' > ) } export default DocumentTemplateDesign