typescript
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||
import type { ReactNode } from 'react';
|
||||
import TagsPanel from '../tags/TagsPanel';
|
||||
import CorrespondentsPanel from '../correspondents/CorrespondentsPanel';
|
||||
import CorrespondentsPanel, { CorrespondentsPanelProps } from '../correspondents/CorrespondentsPanel';
|
||||
import PanelHeader from '../ui/PanelHeader';
|
||||
|
||||
const TAGS_MODAL = 'tags';
|
||||
@@ -135,6 +135,36 @@ export const useManagementModals = ({
|
||||
tags,
|
||||
]);
|
||||
|
||||
const handleCorrespondentCreateSafe = useCallback<CorrespondentsPanelProps['onCreate']>(
|
||||
async (payload) => {
|
||||
if (typeof onCorrespondentCreate !== 'function') {
|
||||
return undefined;
|
||||
}
|
||||
return onCorrespondentCreate(payload) ?? undefined;
|
||||
},
|
||||
[onCorrespondentCreate],
|
||||
);
|
||||
|
||||
const handleCorrespondentUpdateSafe = useCallback<CorrespondentsPanelProps['onUpdate']>(
|
||||
async (id, payload) => {
|
||||
if (typeof onCorrespondentUpdate !== 'function') {
|
||||
return;
|
||||
}
|
||||
await onCorrespondentUpdate(id, payload);
|
||||
},
|
||||
[onCorrespondentUpdate],
|
||||
);
|
||||
|
||||
const handleCorrespondentDeleteSafe = useCallback<CorrespondentsPanelProps['onDelete']>(
|
||||
async (id) => {
|
||||
if (typeof onCorrespondentDelete !== 'function') {
|
||||
return;
|
||||
}
|
||||
await onCorrespondentDelete(id);
|
||||
},
|
||||
[onCorrespondentDelete],
|
||||
);
|
||||
|
||||
const correspondentsModal = useMemo(() => {
|
||||
if (activeModal !== CORRESPONDENTS_MODAL) {
|
||||
return null;
|
||||
@@ -167,9 +197,9 @@ export const useManagementModals = ({
|
||||
<CorrespondentsPanel
|
||||
correspondents={correspondents}
|
||||
onRefresh={refreshCorrespondents}
|
||||
onCreate={onCorrespondentCreate}
|
||||
onUpdate={onCorrespondentUpdate}
|
||||
onDelete={onCorrespondentDelete}
|
||||
onCreate={handleCorrespondentCreateSafe}
|
||||
onUpdate={handleCorrespondentUpdateSafe}
|
||||
onDelete={handleCorrespondentDeleteSafe}
|
||||
onNotify={setStatusMessage}
|
||||
/>
|
||||
</div>
|
||||
@@ -180,9 +210,9 @@ export const useManagementModals = ({
|
||||
activeModal,
|
||||
closeActiveModal,
|
||||
correspondents,
|
||||
onCorrespondentCreate,
|
||||
onCorrespondentDelete,
|
||||
onCorrespondentUpdate,
|
||||
handleCorrespondentCreateSafe,
|
||||
handleCorrespondentDeleteSafe,
|
||||
handleCorrespondentUpdateSafe,
|
||||
refreshCorrespondents,
|
||||
setStatusMessage,
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user