Size: a a a

2020 August 10

AI

Alex Insulin in ☄️ effector
ну пока совсем не очевидно где еще может быть проблема
источник

КН

Котяй Негодяй... in ☄️ effector
🦜
Использовать гейт и домен
А есть пример?
источник

🦜

🦜 in ☄️ effector
Котяй Негодяй
А есть пример?
Я бы написал, но не у компа
источник

🦜

🦜 in ☄️ effector
Тебе надо через хук домена на создание стора добавить каждому стору ресет на анмаунт гейта
источник

AI

Alex Insulin in ☄️ effector
createStore<🦉> ⁣
какие версии effector и effector-react?
upd. соре, я глубже юзал не стор
источник

КН

Котяй Негодяй... in ☄️ effector
🦜
Тебе надо через хук домена на создание стора добавить каждому стору ресет на анмаунт гейта
О. Ништяк. Спасибо.
источник

NT

Nikita Tkachuk in ☄️ effector
а функции в эвенты передавать плохая практика?
источник

SK

Sergei Kurishov in ☄️ effector
Nikita Tkachuk
а функции в эвенты передавать плохая практика?
Случайно не от final form?
источник

NT

Nikita Tkachuk in ☄️ effector
не
источник

DS

Dmitriy Shuleshov in ☄️ effector
Nikita Tkachuk
а функции в эвенты передавать плохая практика?
А что дальше с функциями этими настроен делать?
источник

NT

Nikita Tkachuk in ☄️ effector
forward({
 from: grantPermission.map(({ employeeId, permission }) => ({
   employeeId,
   // eslint-disable-next-line no-bitwise
   updatePermissions: (permissions) => permissions | permission,
 })),
 to: changeEmployeePermissions,
})
источник

NT

Nikita Tkachuk in ☄️ effector
Dmitriy Shuleshov
А что дальше с функциями этими настроен делать?
permissions: updatePermission(user.permissions)  в сторе
источник

DS

Dmitriy Shuleshov in ☄️ effector
Nikita Tkachuk
forward({
 from: grantPermission.map(({ employeeId, permission }) => ({
   employeeId,
   // eslint-disable-next-line no-bitwise
   updatePermissions: (permissions) => permissions | permission,
 })),
 to: changeEmployeePermissions,
})
Выглядит как оверхед. Можно чуть больше контекста и задачу?
источник

NT

Nikita Tkachuk in ☄️ effector
нужно обновлять права в массиве пользователей
.on(changeEmployeePermissions, (users, { employeeId, updatePermission }) => {
   const index = users.findIndex((user) => user.id === employeeId)

   if (index !== -1) {
     const user = users[index]

     users.splice(index, 1, { ...users[index], permissions: updatePermission(user.permissions) })
   }

   return users
 })


и есть эвенты которые меняют права:
permissions | permission,
или
permissions & ~permission

и чтобы не дублировать
const index = users.findIndex((user) => user.id === employeeId) …
хочется на уровень выше сделать
источник

Б

Богдан in ☄️ effector
createStore<🦉> ⁣
класс)) полностью нарушено разделение ответственности
А почему это представление не должно знать про контроллер/модели? Представление очень часто является источником фичи и всей бизнес-логики - дизайнер/заказчик определяет - вот тут надо добавить кнопку которая делает то и то. У нас тут прямая связь представления (кнопки со стилями) с логикой. Нет кнопки - нет всей этой логики. Если мы начнем разделять и добавлять косвенности (мол все что должна знать кнопка так это вызов события который будет обрабатываться где-то в другом месте) то получим что добавленный код в коммите новой фичи будет ровным слоем размазан на кучу файлов вместо того чтобы быть в одном месте рядом с самой кнопкой.
И если потребуется удалить кнопку или изменить то что она делает то придется потом пройтись и удалить/поменять код во всех этих файлах/местах (вместо того чтобы удалить его одни куском вместе с кнопкой когда вся логика будет записана внутри onClick-обработчика на кнопке).
Ну и плюс намного удобнее читать код и понимать что происходит когда все что делает кнопка будет записано внутри обработчика и не нужно прыгать по куче файлов и вручную собирать картину в голове какие события вызывает кнопка и как на нее реагируют различные части приложения
В итоге наворачивать все эти слои косвенности имеет смысл только тогда когда мы начинаем дублировать код. Например, если несколько кнопок должны выполнить одну и ту же логику то тогда действительно нужно вынести логику в функцию чтобы ее не дублировать в каждом обработчике
источник

c⁣

createStore<🦉>... in ☄️ effector
Богдан
А почему это представление не должно знать про контроллер/модели? Представление очень часто является источником фичи и всей бизнес-логики - дизайнер/заказчик определяет - вот тут надо добавить кнопку которая делает то и то. У нас тут прямая связь представления (кнопки со стилями) с логикой. Нет кнопки - нет всей этой логики. Если мы начнем разделять и добавлять косвенности (мол все что должна знать кнопка так это вызов события который будет обрабатываться где-то в другом месте) то получим что добавленный код в коммите новой фичи будет ровным слоем размазан на кучу файлов вместо того чтобы быть в одном месте рядом с самой кнопкой.
И если потребуется удалить кнопку или изменить то что она делает то придется потом пройтись и удалить/поменять код во всех этих файлах/местах (вместо того чтобы удалить его одни куском вместе с кнопкой когда вся логика будет записана внутри onClick-обработчика на кнопке).
Ну и плюс намного удобнее читать код и понимать что происходит когда все что делает кнопка будет записано внутри обработчика и не нужно прыгать по куче файлов и вручную собирать картину в голове какие события вызывает кнопка и как на нее реагируют различные части приложения
В итоге наворачивать все эти слои косвенности имеет смысл только тогда когда мы начинаем дублировать код. Например, если несколько кнопок должны выполнить одну и ту же логику то тогда действительно нужно вынести логику в функцию чтобы ее не дублировать в каждом обработчике
Тогда это не MVC
источник

BB

Bugs Bunny in ☄️ effector
Богдан
А почему это представление не должно знать про контроллер/модели? Представление очень часто является источником фичи и всей бизнес-логики - дизайнер/заказчик определяет - вот тут надо добавить кнопку которая делает то и то. У нас тут прямая связь представления (кнопки со стилями) с логикой. Нет кнопки - нет всей этой логики. Если мы начнем разделять и добавлять косвенности (мол все что должна знать кнопка так это вызов события который будет обрабатываться где-то в другом месте) то получим что добавленный код в коммите новой фичи будет ровным слоем размазан на кучу файлов вместо того чтобы быть в одном месте рядом с самой кнопкой.
И если потребуется удалить кнопку или изменить то что она делает то придется потом пройтись и удалить/поменять код во всех этих файлах/местах (вместо того чтобы удалить его одни куском вместе с кнопкой когда вся логика будет записана внутри onClick-обработчика на кнопке).
Ну и плюс намного удобнее читать код и понимать что происходит когда все что делает кнопка будет записано внутри обработчика и не нужно прыгать по куче файлов и вручную собирать картину в голове какие события вызывает кнопка и как на нее реагируют различные части приложения
В итоге наворачивать все эти слои косвенности имеет смысл только тогда когда мы начинаем дублировать код. Например, если несколько кнопок должны выполнить одну и ту же логику то тогда действительно нужно вынести логику в функцию чтобы ее не дублировать в каждом обработчике
и у тебя вся вьюха засрата обработчиками БЛа?
источник

BB

Bugs Bunny in ☄️ effector
а если логика повторяется?
источник

BB

Bugs Bunny in ☄️ effector
а что если у тебя целая операция триггерится по клику этому
источник

BB

Bugs Bunny in ☄️ effector
состоящая из кучи других сабтасков
источник