Параллельные шаги (#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,33 @@
|
||||
// Есть ли в открытой форме «Новая заявка» правки, которые ещё не сохранены.
|
||||
//
|
||||
// Нужно, потому что раздел «Новая заявка» держится смонтированным при
|
||||
// переключении вкладок (см. RequestPortal.tsx), и единственное, что реально
|
||||
// пересоздаёт форму, — переход «создать на основе». Перед ним и спрашиваем,
|
||||
// но только если терять действительно есть что.
|
||||
//
|
||||
// Флаг ставится по факту пользовательского ввода (событие input/change из
|
||||
// раздела формы — см. RequestPortal), а снимается после сохранения: черновик
|
||||
// тоже считается сохранением, форма зовёт onSaved и в обоих случаях
|
||||
// («Сохранить черновик» и «Отправить»), см. forms/*/Form.tsx.
|
||||
let dirty = false;
|
||||
|
||||
export function markFormDirty(): void {
|
||||
dirty = true;
|
||||
}
|
||||
|
||||
export function markFormClean(): void {
|
||||
dirty = false;
|
||||
}
|
||||
|
||||
export function hasUnsavedFormChanges(): boolean {
|
||||
return dirty;
|
||||
}
|
||||
|
||||
// Спросить подтверждение, если несохранённые правки есть. true — можно
|
||||
// продолжать (правок нет либо пользователь согласился их потерять).
|
||||
export function confirmDiscardFormChanges(): boolean {
|
||||
if (!dirty) return true;
|
||||
return window.confirm(
|
||||
'В открытой форме «Новая заявка» есть несохранённые изменения — они будут потеряны. Продолжить?'
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user