Как стать автором
Обновить
27
-2.4
Александр @cherkalexander

Пользователь

Отправить сообщение
 classNames={{
    "file-drop-zone_box": myClassNames.myFileDropZoneBoxClass,
    "file-drop-zone_button": myClassNames.myButtonClass,
    "file-icon": myClassNames.myFileIconClass,
    "file-box": myClassNames.myFileBoxClass,
    "file-box__file-button": myClassNames.myFileButton
    }}

Имена классов выглядят достаточно странно, где-то есть нижние подчеркивания, где-то нет, где-то подчеркивание одиночное, где-то двойное (привет БЭМ). Я бы сделал как в material ui

classNames={{
  root: '...',
  box: '...',
  button: '...',
  icon: '...',
}}

Я бы ещё добавил слоты, чтобы было можно полностью заменять реализацию компонента на кастомную. Как в material ui

https://mui.com/material-ui/api/slider/#slider-prop-slots

А так выглядит не плохо. Хотя на статью, конечно, не тянет. Для статьи было бы полезно описать как это реализовывалось и с какими трудностями столкнулись. И почему не подошли готовые библиотеки.

Там есть кнопка комментариев, внизу, она мне помогла быстро их открыть)

Попробуйте использовать с новыми Form Actions будете неприятно удивлены

Вы точно пробовали использовать useOptimistic? Ваш хук работает один в один, как и мой. И компонент обновляется только тогда, когда асинхронная функция выполнилась, а не мгновенно как в случае с useOptimistic.

WAT? Да причём тут async / await. Убрав await перед promise вы просто не дожидаетесь его выполнения и обновляете setState мгновенно. 

Вот тут песочница а тут исходники, можете поиграться.

Я имел в виду, что для useOptimistic важно чтобы метод обработчик возвращал промис. Ссылаясь на свой пример, я говорил об async/await. Вот здесь видно, как оптимистичные обновления перестают работать, если метод не возвращает промис https://app.screencast.com/6WIPVTltHTnlz.

Дык стоит разобраться, что там пошло не так. Полагаю, никакой связи именно с <form/> там нет.

Пока не понятно куда копать, создал вопрос на stack overflow.

Судя по всему, это очень примитивный хук, который можно было написать руками годы назад. Нечто подобное я даже когда-то писал. Видимо React team решили, что инструмент достаточно частотный, чтобы дать его из коробки.

Это была моя первая мысль, непонятно зачем он вообще нужен и я пошёл и написал свой хук для сравнения. В итоге выяснил, что если вызывать setState до того, как асинхронный метод завершится, ре-рендера не произойдёт, он произойдёт только, если использовать useOptimistic.

https://app.screencast.com/RvQny4z0YB9Ny

import { useCallback, useEffect, useState } from 'react';

export function useOptimistic<State, Action>(
    state: State,
    updateFn: (state: State, optimisticValue: Action) => State
): [State, (action: Action) => void] {
    const [optimisticState, setOptimisticState] = useState(state);

    useEffect(() => {
        setOptimisticState(state);
    }, [state]);

    const addOptmistic = useCallback(
        (value: Action) => {
            const optState = updateFn(optimisticState, value);
            setOptimisticState(optState);
        },
        [optimisticState, updateFn]
    );

    return [optimisticState, addOptmistic];
}

очень странный вопрос, Microsoft ввёл санкции на использование C# в России?

А вы используете гитлаб? В гитлабе, насколько я помню, автоматически на основании CodeOwner'ов формируется список ответственных в видео таблицы, где напротив каждого измененного файла написан ответственный. Получается, что автору достаточно выбрать ревьюеров из списка.

Это не уязвимость! Это фича! Поздравляю вы успешно используете Remote Code Execution уязвимость https://cqr.company/ru/web-vulnerabilities/rce/

Ну там, где поддерживается это всё, конечно лучше использовать встроенные решения. Мы используем Zustand и там такого нет.

Честно говоря, пока хз, где это применять на фронте.

Но там же всё равно придётся вызывать что-то типа setLoading, не имеет значения используются хуки или менеджер состояний 🤔

Библиотеки скорее используют, чтобы отрисовать сам скелетон или спиннер. А управлять его состоянием нужно самому.

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

@jura-49А что за no-code продукт разрабатываете?

А как продукт называется?

@AlexeyW100 а есть шаблон какой-то чтобы быстро сгенерировать подобный UI? Чтобы Сразу была шапка и боковая панель?

Классная стать, спасибо 👍

Да, это был наш запасной вариант. Оплакивали его вчера.

Мы добавляем вручную в наши *.less файлы. Но я видел примеры, где это можно делать прямо из фигмы. То есть дизайнеры могут добавить/изменить токен в фигме, а изменения отправятся в репозиторий.

Вот тут описываются такие подходы:

А там есть какой-то способ валидировать используются ли дизайн токены или значения захардкожены?

1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Курск, Курская обл., Россия
Зарегистрирован
Активность