Параллельные шаги (#3)
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/3
This commit was merged in pull request #3.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import * as React from 'react';
|
||||
import type { WebPartContext } from '@microsoft/sp-webpart-base';
|
||||
import styles from '../approve/ApproveFeature.module.scss';
|
||||
import { getFormComponent } from '../../forms/registry';
|
||||
import { REQUEST_TYPES } from '../../data/requests';
|
||||
import { emitRequestsChanged } from '../../shared/requestEvents';
|
||||
|
||||
export interface IEditFeatureProps {
|
||||
context: WebPartContext;
|
||||
/** Ключ формы (тип заявки) из URL. */
|
||||
formKey: string;
|
||||
/** RowID редактируемой заявки из URL. */
|
||||
itemId: number;
|
||||
/** Закрыть панель (после сохранения). */
|
||||
onClose: () => void;
|
||||
}
|
||||
|
||||
// Фича «Редактирование»: открывает СВОЮ незавершённую заявку (черновик,
|
||||
// возвращённую, отклонённую) в той же выезжающей панели, где обычно показывается
|
||||
// просмотр. Рендерит ту же форму, что и подача, но с editId — форма подгружает
|
||||
// существующую запись и сохраняет в неё же.
|
||||
//
|
||||
// Отдельно от features/submit намеренно: там форма живёт в потоке «плитки →
|
||||
// новая заявка», а тут — точечное открытие конкретной записи по ссылке.
|
||||
const EditFeature: React.FC<IEditFeatureProps> = ({ context, formKey, itemId, onClose }) => {
|
||||
const FormComponent = getFormComponent(formKey);
|
||||
const requestType = REQUEST_TYPES.filter((r) => r.id === formKey)[0];
|
||||
|
||||
if (!FormComponent || !requestType) {
|
||||
return <div className={styles.state}>Для формы «{formKey}» редактирование не настроено.</div>;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={styles.content}>
|
||||
<React.Suspense fallback={<div className={styles.state}>Загрузка формы…</div>}>
|
||||
<FormComponent
|
||||
requestType={requestType}
|
||||
context={context}
|
||||
editId={itemId}
|
||||
onCancel={onClose}
|
||||
onSaved={() => {
|
||||
emitRequestsChanged();
|
||||
onClose();
|
||||
}}
|
||||
/>
|
||||
</React.Suspense>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default EditFeature;
|
||||
Reference in New Issue
Block a user