Oleg
Но лучше погугли про flex layout
Vlad
и про css grid
Vlad
остался всего месяц до них в проде у мажорных вендоров
Nikolay
и про css grid
легким движением пальцев отправили чувака еще на пару недель учить :D
Vlad
ну для начала можно посмотреть доклад макеева
Oleg
Искусство требует жертв
0xVoushi
Vlad
не будет
Vlad
в сафари хз когда будет
0xVoushi
Ну вот именно :(99
Vlad
ну это не повод не использовать
Vlad
всё равно уже везде флексы есть
Vlad
где есть флексы
Vlad
есть @support
Andrey
Andrey
as usual
Vlad
в ие есть флексбоксы
Vlad
он просто не будет понимать ни саппорт, ни гриды в нём
Adel
всем привет! у меня точечный вопрос про лодаш
Adel
есть ли в лодаше функция, которая рекурсивно выполняет переданную в нее функцию до тех пор, пока результат не перестанет быть функцией?
Andrey
Касательно флексов, отдельная боль - UC Browser
Nikolay
Nikolay
Причем они заявляют, что поддерживают его.
Serhii
помню uc популярен под звонилки только
Andrey
Те, кого подкупил бесплатный впн, видимо
Serhii
я лично на uc сидел еще с нокии на симбиане 9.1
Serhii
крутой браузер, отлично режет цсс и жс, так что сайты грузятся моментально
Serhii
лол
Nikolay
Я себе поставил посмотреть вообще что это такое, -- снес в тот же день, всю ленту мне пушами засрал.
Serhii
наверное уже не торт, когда всюду есть вифи и 3г
Дима
Serhii
чет даже не придумаю как через лодаш это сделать
Дима
То же самое в принципе)
Adel
ну по сути я сделал result = (value) => _.isFunction(value) ? result (value ()) : value, даже лаконичнее, чем через R
Adel
на самом деле я сделал чуть гибче
result = (value, args, context) => _.isFunction(value) ? result ( value.apply(context, args), args, context ) : value
Adel
хотел избавиться, странно, что такого нет, вроде популярная проблема
Serhii
наверное популярная в узких кругах
Adel
в моем узком проекте)
Oleg
Я что-то такое делал и даже несколько раз, но это было давно. А потом я нашёл вариант без рекурсий
Дима
Я бы дважды подумал, прежде чем делать рекурсивные вызовы, жонглируя this
Oleg
Там ещё стек разрастается
Adel
какой такой зис, контекст ж передаю явно, если нужен)
Дима
Не нужен
Oleg
А какова задача?
Oleg
Очередь исполнения?
Adel
оххх, это сложно объяснить на пальцах..
Adel
вообще задача - вычисление прав доступа к сущности на основании значений полей сущности и пользователя
Adel
правила отдает бэкенд
Adel
и все было еще более менее терпимо, пока бэкенд не решил отдавать в качестве определенных значений, внимание, keyword
Adel
что превратило результат вычислений в непредсказуемую цепочку запаковынных вызовов
Adel
ну и теперь чтобы добраться до значения, надо вызывать результат до тех пор, пока он не окажется не функцией, реализующей очередной keyword
Narek
приветики
Adel
привет)
Oleg
Adel
Странно всё это
ну грубо упрощая
entity = {id: 1, forbidden: true, reallyForbidden: 'not-for-creator', creator: 2}
user = {id: 2, name: '123'}
accessRule1 = {field: 'forbidden', value: false, userField: null}
accessRule2 = {field: 'creator', userField: 'id'}
accessRule3 = {field: 'reallyForbidden', value: false}
Serhii
валидация короч
Adel
мне в качестве value может прилететь как значение, которое надо сравнить с entity[accessRule.field]
Adel
так и указание на функцию, которая хрен знает что вернет, но если эта зараза вернет функцию, то надо ее тоже выполнить, пока наконец не будет значение на выходе
Adel
сравниваю-то я значения, не функции
Vlad
мб поговорить с бэкендом?
Adel
то есть reallyForbidden может вернуть генератор с аяксами, например
Adel
да не, зачем, решена же проблема
Дима
У них да — у тебя как то кажется не очень
Adel
там, например, есть keyword now
Дима
Вообще, бэкенд, который возвращает функцию — ето круто, конечно)
Adel
это () => Date.now()
Adel
не, он дает кейворды, я их реализую
Adel
да
Adel
вопрос расширяемости, естественно, на мне
Adel
да лан, забейте, если в лодаше нет рекурсивной вызывалки, это не повод менять правовую систему))
Adel
спасибо за подсказки)
Oleg
Adel
Oleg
Производительность
Oleg
Хотя можно тест прогнать
Oleg
Но что-то мне подсказывает что функции рекурсивные с 1 аргументом легче чем с 3