f3b0f0ad48
Модалки по жёлтым кнопкам теряли введённое при случайном клике мимо окна. **Формы создания** (типы заявок, доступ к заявкам, маршруты, шаги маршрута) - Черновик полей хранится в localStorage (useFormDraft) и переживает закрытие окна, «Отмену» и F5. - Окно, открытое в момент F5, открывается снова (usePersistedOpen); закрытие сбрасывает только признак, черновик остаётся. - Черновик стирается после успешного сохранения или кнопкой «Очистить» в подвале. **Формы редактирования** - Не персистятся — открываются с данными сервера. - При выходе с несохранёнными правками (крестик, «Отмена», клик мимо) — диалог «Закрыть без сохранения?» (isDirty в FormModal). **Устойчивость к старым данным в localStorage** - coerceStored приводит сохранённое значение к форме текущего дефолта по полям: новое поле — дефолт, удалённое отбрасывается, значение другого типа и null заменяются дефолтом. Покрыто тестами. **Прочее** - Modal и ConfirmDialog рендерятся порталом в body поверх шапки SharePoint — на живой странице верх высокого окна уезжал под шапку. - Убраны Sass-предупреждения mixed-decls в Card.module.scss. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/30
32 lines
895 B
TypeScript
32 lines
895 B
TypeScript
export * from './Icon';
|
|
export * from './Button';
|
|
export * from './IconButton';
|
|
export * from './Badge';
|
|
export * from './Alert';
|
|
export * from './Toast';
|
|
export * from './ProgressOverlay';
|
|
export * from './Panel';
|
|
export * from './Breadcrumbs';
|
|
export * from './PageHeader';
|
|
export * from './CardGrid';
|
|
export * from './NavCard';
|
|
export * from './StatRow';
|
|
export * from './StatCard';
|
|
export * from './DataTable';
|
|
export * from './PrimaryCell';
|
|
export * from './ActionsCell';
|
|
export * from './CellNote';
|
|
export * from './Modal';
|
|
export * from './ModalOverlay';
|
|
export * from './ConfirmDialog';
|
|
export * from './FormModal';
|
|
export * from './FormGrid';
|
|
export * from './Field';
|
|
export * from './TextInput';
|
|
export * from './Textarea';
|
|
export * from './Select';
|
|
export * from './Checkbox';
|
|
export * from './RadioGroup';
|
|
export * from './SearchableSelect';
|
|
export * from './AsyncSearchableSelect';
|