diff --git a/docs/pages/docs/architecture-and-structures/Filters-preserving routing/Readme.md b/docs/pages/docs/architecture-and-structures/Filters-preserving routing/Readme.md new file mode 100644 index 000000000..56364fd67 --- /dev/null +++ b/docs/pages/docs/architecture-and-structures/Filters-preserving routing/Readme.md @@ -0,0 +1,72 @@ +# Filters-preserving routing + +## Вимоги + +* Фільтри у системі мають відтворюватись після перезавантаження сторінки. + +* Після натиснення кнопки "Close" "вкладеної" сутності (наприклад, карточки контакта у реєстрі контактів), +роутинг має вертати на список контактів, а не на попередню сторінку. При поверненні фільтри - відтворюються. + +## TLDR; + +* Щоб зберегти фільтри у роуті, використовуємо `query` параметри. + +* При закритті "вкладеної" сутності, повертаємось на список, а не на попередню сторінку через роутинг на конкретну сторінку, +а не на `.back()`. + +* Для цього необхідно зберігати фільтри також у `localStorage`, та відтворювати їх при відкритті сторінки, навіть якщо +вони були видалені з `query` параметрів. + +## FAQ + +### Як має працювати зараз? + +В межах одного апплікейшена, фільтри мають зберігатись в межах сесії. + +В деяких апплікейшенах (див. [роадмапу переробки](#роадмапа-переробки)), фільтри зберігаються в `query`. Як про це дізнатись? +у роуті є `query` з фільтрами. + +Фільтри з `query` - мають відтворюватись. + +Фільтри без `query` - нажаль, ні 😢. Тільки в межах сесії апплікейшена. + +### "Я відкрив вкладену сутність, натиснув на "Close", але фільтри не відтворилися. Чому?" + +**Бага.** + +#### Шо робить? + +Звіртесь з тим, [як має працювати](#як-має-працювати-зараз). Якщо працює не так, як там - але умови збігаються. +**Копайте, будем фіксати.** + +Якщо ж не так, як там - тоді тільки чекати переробку фільтрів у цьому апплікейшені. + +#### А чому? + +Варіанти 2: +- Або, в цьому місці ще не було реалізовано збереження фільтрів у `query` параметрах (якщо роутер вертає на попередню сторінку). +- Або, не було реалізовано відновлення фільтрів з `localStorage` у `query`. (якщо роутер вертає на таблицю). + +### А коли буде все добре? + +Коли переробимо фільтри 😢 + +([роадмапа переробки](#роадмапа-переробки)) + +## Роадмапа переробки + +**-- Тут роутинг працює через повернення на попередню сторінку --** + +1. Переробити всі апплікейшени на нову систему фільтрації, яка зберігає значення фільтрів у `query`. + +- [x] CRM +- [x] Audit +- [] History +- [] Supervisor +- [] Admin + +_Флова, авторизації, віджета - не стосується._ + +2. Додати підтримку `localStorage` у модуль фільтрів, яка би відтворювала фільтри зі стореджа, коли їх немає у `query`. + +**-- Тут переробляємо роутинг працювати через редірект на таблицю --**