Size: a a a

2020 March 23

BS

Bogdan Shelomanov in ☄️ effector
🦜
надо сначала пописать на редаксе, потом устать от когнективного изнасилования, искать путь уйти от этого харасмента в разработке и повстречать эффектор.

Начать на нем писать и тогда ты поймешь:
без него не могу жить
так ридакс и так понятно, но я например юзаю аполо и в итоге он не заменяет стейт менеджер, хотя они пишут, что он им является, в нем писать логику не удобно и она похожа на жопу, скрестить с еффектором было бы довольно хорошечно
источник

SL

Sergey Lapin in ☄️ effector
по идее изменения должны попасть в elemPathPairs
источник

🦉⁣

🦉 ⁣ in ☄️ effector
combine(elemPathPairs, cursorPosition, (elemPath, cursor) => {})
источник

yv

yumaa verdin in ☄️ effector
🐱 Rough Cat
lodash identity
там не совсем identity, там в аргументе первый элемент массива берётся
источник

🦜

🦜 in ☄️ effector
Bogdan Shelomanov
так ридакс и так понятно, но я например юзаю аполо и в итоге он не заменяет стейт менеджер, хотя они пишут, что он им является, в нем писать логику не удобно и она похожа на жопу, скрестить с еффектором было бы довольно хорошечно
Ну, в чате графкл тебе скажут все наоборот
источник

BS

Bogdan Shelomanov in ☄️ effector
да они врут
источник

🦜

🦜 in ☄️ effector
там для пацанов логика во вьюхе это заебись
источник

🦉⁣

🦉 ⁣ in ☄️ effector
Sergey Lapin
по идее изменения должны попасть в elemPathPairs
.map создает новый стор, который реагирует на изменение родительского
источник

🦉⁣

🦉 ⁣ in ☄️ effector
Sergey Lapin
по идее изменения должны попасть в elemPathPairs
если хочешь менять этот стор используй .on
источник

🦜

🦜 in ☄️ effector
а на самом деле

* логика привязана к view
* логика зависит от lifecycle
* нельзя использовать вне view (продолжить исполнять)
* изменения повлекут изменения view
* нельзя описать сценарий ( тестирование без view)
источник

BS

Bogdan Shelomanov in ☄️ effector
Bogdan Shelomanov
да они врут
я уже просил показать например, два списка, смержить, что то сделать, вернуть третий, что то не смогли, но там можно, но это будет полнейшим очком
источник

🦉⁣

🦉 ⁣ in ☄️ effector
Sergey Lapin
export const currentlySelected = combine({ elemPathPairs, cursorPosition }).map(
   ({ elemPathPairs, cursorPosition }) => {
       let result = null;
       result = elemPathPairs.find((item: any) => {
           const bounds = item.path.getBounds();

           if (
               bounds.fLeft < cursorPosition.x &&
               bounds.fTop < cursorPosition.y &&
               bounds.fRight > cursorPosition.x &&
               bounds.fBottom > cursorPosition.y
           ) {
               return item.elem;
           }

           return null;
       });

       return result;
   },
);
elemPathPairs.on(cursorPosition, (pairs, cursor) => {})
источник

🦉⁣

🦉 ⁣ in ☄️ effector
я советую для сторов использовать префикс $

так сторы легко отличимы от чего угодно, что в ПР, что в скриншотах, что в сниппетах
источник

🦉⁣

🦉 ⁣ in ☄️ effector
🦉 ⁣
я советую для сторов использовать префикс $

так сторы легко отличимы от чего угодно, что в ПР, что в скриншотах, что в сниппетах
$elemPathPairs.on($cursorPosition, (elemPathPairs, cursorPosition) => {})

теперь тут видно, когда обращаешься к стору, а когда к значению, нет опасности shadow var
источник

🦉⁣

🦉 ⁣ in ☄️ effector
Sergey Lapin
export const currentlySelected = combine({ elemPathPairs, cursorPosition }).map(
   ({ elemPathPairs, cursorPosition }) => {
       let result = null;
       result = elemPathPairs.find((item: any) => {
           const bounds = item.path.getBounds();

           if (
               bounds.fLeft < cursorPosition.x &&
               bounds.fTop < cursorPosition.y &&
               bounds.fRight > cursorPosition.x &&
               bounds.fBottom > cursorPosition.y
           ) {
               return item.elem;
           }

           return null;
       });

       return result;
   },
);
а тут есть
источник

🦜

🦜 in ☄️ effector
Bogdan Shelomanov
я уже просил показать например, два списка, смержить, что то сделать, вернуть третий, что то не смогли, но там можно, но это будет полнейшим очком
а чтобы юзать gql с эффектором тебе нужно лишь написать объвязку вокруг  graphql-request или просто fetch
источник

DS

Dmitriy Shuleshov in ☄️ effector
Bogdan Shelomanov
я уже просил показать например, два списка, смержить, что то сделать, вернуть третий, что то не смогли, но там можно, но это будет полнейшим очком
это все верно, но когда уже есть аполо натянуть еще и эффектор будет тяжко (не выкидывая аполо)
источник

VK

Valeriy Kobzar in ☄️ effector
Sergey Lapin
export const currentlySelected = combine({ elemPathPairs, cursorPosition }).map(
   ({ elemPathPairs, cursorPosition }) => {
       let result = null;
       result = elemPathPairs.find((item: any) => {
           const bounds = item.path.getBounds();

           if (
               bounds.fLeft < cursorPosition.x &&
               bounds.fTop < cursorPosition.y &&
               bounds.fRight > cursorPosition.x &&
               bounds.fBottom > cursorPosition.y
           ) {
               return item.elem;
           }

           return null;
       });

       return result;
   },
);
elemPathPairs массив? колбэк в find должен возвращать булево значение true|false
источник

BS

Bogdan Shelomanov in ☄️ effector
Dmitriy Shuleshov
это все верно, но когда уже есть аполо натянуть еще и эффектор будет тяжко (не выкидывая аполо)
ну аполо для запросов, еффектор для стейта конкретно не связанного с запросами
источник

🦜

🦜 in ☄️ effector
Dmitriy Shuleshov
это все верно, но когда уже есть аполо натянуть еще и эффектор будет тяжко (не выкидывая аполо)
да он не нужен, мы уже давно здесь обсудили
источник