import { useMemo, useRef, useState } from 'react'
import { useLocation } from 'react-router-dom'
import { Card, Flex, Space, Spin } from 'antd'
import { LoadingOutlined } from '@ant-design/icons'
import useCollapseState from '../../hooks/useCollapseState'
import NotesPanel from '../../common/NotesPanel'
import InfoCollapse from '../../common/InfoCollapse'
import ViewButton from '../../common/ViewButton'
import NoteIcon from '../../../Icons/NoteIcon'
import ObjectForm from '../../common/ObjectForm'
import EditButtons from '../../common/EditButtons'
import ObjectTableNavigationButtons from '../../common/ObjectTableNavigationButtons'
import ActivityIndicator from '../../common/ActivityIndicator'
import ActionHandler from '../../common/ActionHandler'
import ObjectActions from '../../common/ObjectActions'
import TemplateEditor from '../../common/TemplateEditor'
import ScrollBox from '../../common/ScrollBox'
import { useDashboardObjectTools } from '../../context/DashboardObjectToolsContext'
const EmailTemplateDesign = () => {
const location = useLocation()
const objectFormRef = useRef(null)
const actionHandlerRef = useRef(null)
const emailTemplateId = new URLSearchParams(location.search).get(
'emailTemplateId'
)
const [collapseState, updateCollapseState] = useCollapseState(
'EmailTemplateDesign',
{ preview: true, editor: true, notes: true }
)
const [formState, setFormState] = useState({
isEditing: false,
editLoading: false,
formValid: false,
activities: [],
loading: false,
objectData: {}
})
useDashboardObjectTools(
useMemo(
() => (
),
[emailTemplateId, formState.isEditing, formState.loading]
)
)
return (
actionHandlerRef.current.callAction('finishEdit')}
cancelEditing={() =>
actionHandlerRef.current.callAction('cancelEdit')
}
startEditing={() => actionHandlerRef.current.callAction('edit')}
editLoading={formState.editLoading}
formValid={formState.formValid}
disabled={formState.beingEditedByOther || formState.loading}
loading={formState.editLoading}
/>
{
objectFormRef.current?.startEditing()
return false
},
cancelEdit: () => {
objectFormRef.current?.cancelEditing()
return true
},
finishEdit: () => {
objectFormRef.current?.handleUpdate()
return true
}
}}
loading={formState.loading}
ref={actionHandlerRef}
>
setFormState((previous) => ({ ...previous, ...state }))
}
>
{({ loading, isEditing, objectData, form, setObjectData }) => (
)}
}
active={collapseState.notes}
onToggle={(expanded) => updateCollapseState('notes', expanded)}
collapseKey='notes'
>
}>
)
}
export default EmailTemplateDesign