Levott, придётся мучиться с позиционированием точек, другого варианта нет, они в любом случае будут сползать- так как нет магического свойства в css что бы в изображении элемент спозиционировать
Если при клике товар должен краситься в нужный цвет, то это не цельное изображение, а набор изображений, и к каждому изображению - позиционируешь свою точку.
Скорее всего при адаптиве эти точки будут не на тех местах, на которых должны быть, ну тут придётся что-то придумать. Цельным изображением - это не получиться сделать, да и как ты красить будешь... непонятно, так что бы при адаптиве все точки были на тех местах, на которых они сейчас на изображении.
может ты хотя бы пояснишь в своих вопросах последних двух, о том какую задачу ты пытаешься решить, и если повезёт - хорошие люди подскажут правильный путь для решение твоей задачи, а то что ты там вокеры с интервалами связываешь на фронте, это явно какой-то особый проект, что требует таких подходов
Марат Шакиров, проверяй внутри requestAnimationFrame секунды, если они отличаются от тех что в date - то только тогда изменяй стейт, нет смысла на каждый тик обновлять стейт
правда в этом случае я вижу минус из того что в useEffect придётся прокидывать date ( хотя он и сейчас у тебя там ), либо сделать через 2 useEffect либо сделать через один но ещё при помощи useRef хука, в который бы записывалось значение date, когда ты обновляешь date , в current - просто хранишь это значение , и его отслеживаешь в useEffect ( это нужно для того что бы не прокидывать date в useEffect ), пробуй
А какую ошибку ты хочешь что бы там тебе отображало ? Обрати внимание что react-hook-form - ничего не знает о том что твой запрос вернул ошибку о том что не прошла авторизация, или ещё что-то, эти две логики не как не связаны друг с другом
error отработает если при вводе символов в поле input - длина будет менее 6 как указано в опциях валидации и всё
по ролям отдаёшь просто разный контент, или по ролям какие-то энпоинты на сервере доступны для запросов, а какие-то нет
например есть ендпоинт на сервер localhost:5000/api/get-user-info - когда ты сюда отправляешь запрос, на сервере проверяешь токен доступа, если он валидный, ищешь юзера в бд по айдишнику и если юзер есть - проверяешь роль юзера, если это админ - отдаёшь одни данные, если это простой юзер - отдаёшь другие
WbICHA правильно говорит, просто в таблице у юзера хранишь булевое значение о том что подтверждена ли почта или нет, ещё мухосранские бэкендеры бывают за место булевого делают цифры, типа 0 или 1 вахха ( тип номера, а не булевого )
отдельную таблицу для этого создавать не стоит, если тупо подтверждение аккаунта например
перед тем как добавить товар в корзину, проверяешь есть ли он в корзине, если он есть - просто нужному объекту увеличиваешь count, если его там нет - только в этом случае добавляешь в массив товар
и тогда проблем с логикой удаления не будет, щас код у тебя рабочий для удаления продукта из корзины
как тебе сказал sharpsss - медиа запросы в помощь