feat: added notifications workflow
This commit is contained in:
@@ -16,15 +16,23 @@ export interface ISubmitFeatureProps {
|
||||
activeCategoryId: string;
|
||||
/** Открыть сразу форму с предзаполнением (производная заявка), минуя плитки. */
|
||||
initialForm?: { formKey: string; sourceId: number };
|
||||
/** Открыть сразу форму на РЕДАКТИРОВАНИЕ существующей заявки (черновик/возвращена). */
|
||||
editForm?: { formKey: string; itemId: number };
|
||||
}
|
||||
|
||||
// Фича «Подать заявку»: плитки → беспоук-форма (категории/вкладки — в RequestPortal).
|
||||
// Владелец: автор портала. Живёт целиком в features/submit/**.
|
||||
const SubmitFeature: React.FC<ISubmitFeatureProps> = ({ context, activeCategoryId, initialForm }) => {
|
||||
// Если пришли по ссылке «создать на основе» — сразу открываем нужную форму.
|
||||
const SubmitFeature: React.FC<ISubmitFeatureProps> = ({
|
||||
context,
|
||||
activeCategoryId,
|
||||
initialForm,
|
||||
editForm,
|
||||
}) => {
|
||||
// «Создать на основе» и «редактировать» оба сразу открывают нужную форму, минуя плитки.
|
||||
const preOpen = initialForm ?? editForm;
|
||||
const initialSelected = useMemo(
|
||||
() => (initialForm ? REQUEST_TYPES.filter((r) => r.id === initialForm.formKey)[0] ?? null : null),
|
||||
[initialForm]
|
||||
() => (preOpen ? REQUEST_TYPES.filter((r) => r.id === preOpen.formKey)[0] ?? null : null),
|
||||
[preOpen]
|
||||
);
|
||||
|
||||
const [selectedRequest, setSelectedRequest] = useState<IRequestType | null>(initialSelected);
|
||||
@@ -61,9 +69,10 @@ const SubmitFeature: React.FC<ISubmitFeatureProps> = ({ context, activeCategoryI
|
||||
);
|
||||
}
|
||||
|
||||
// sourceId — только для формы, открытой «на основе» исходной заявки.
|
||||
// sourceId — «на основе» исходной заявки; editId — правка существующей.
|
||||
const sourceId =
|
||||
initialForm && request.id === initialForm.formKey ? initialForm.sourceId : undefined;
|
||||
const editId = editForm && request.id === editForm.formKey ? editForm.itemId : undefined;
|
||||
|
||||
// Ленивый рендер формы: её код подтягивается только сейчас, при открытии.
|
||||
return (
|
||||
@@ -74,6 +83,7 @@ const SubmitFeature: React.FC<ISubmitFeatureProps> = ({ context, activeCategoryI
|
||||
onCancel={handleBack}
|
||||
onSaved={emitRequestsChanged}
|
||||
sourceId={sourceId}
|
||||
editId={editId}
|
||||
/>
|
||||
</React.Suspense>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user