team113 / messenger

Open-source front-end part of messenger by team113
GNU Affero General Public License v3.0
19 stars 15 forks source link

Implement conditional `Obx` widget #363

Open Hirakota opened 1 year ago

Hirakota commented 1 year ago

Problem to solve

При навигации в профиле все виджеты навигации ребилдятся.

Proposal

Создать на основе GetX CustomObx виджет с возможностью добавления условия для ребилда.

Alternatives

Поискать встроенную возможность в GetX.

SleepySquash commented 1 year ago

Идея: реализовать ConditionalObx (например) виджет, у которого будет наружу торчать какое-нибудь условие (например, функция, возвращающая true или false?) и на основании этого условия дёргать или не дёргать setState внутри.

Пример, где это имеет смысл: вкладка меню и кнопочки на ней. Они перерисовываются при каждом изменении router.profileTabа, даже когда по факту не изменились визуально. Т.е. при переключении перерисовываться должны не все 10+ кнопок, а только 2 - та, которую выбрали, и та, которая перестала быть выбранной (если такая имелась).