Андрей
https://codepen.io/_Andy__/pen/JjoErNX?editors=0010
Китикет
https://codepen.io/_Andy__/pen/JjoErNX?editors=0010
И как ты рендеришь? (а, вижу)
Китикет
<Icon src='gear'/> вот это не будет работать, а верхний вариант должен
Андрей
Это жесть, ради 0.01% юзеров бизнес убивает жизнь своим разрабам)
У нас 1 процент пользователей - это 50к человек.
Китикет
Сделай console.log(gear) и увидишь что там лежит
Nikita
Правда что админка друпал 9 будет работать на реакте?
Андрей
<Icon src='gear'/> а как тут надо прописать что бы работало?
Китикет
<Icon src='gear'/> а как тут надо прописать что бы работало?
<Icon src={gear} /> Либо делай что-то такое import gear from './img/gear.png' const mapNameToSrc = { gear } const Icon = ({ name }) => { return <img src={mapNameToSrc[name]} /> } // и где-то в рендере <Icon name="gear" />
Китикет
Тимофей 🛴
У нас 1 процент пользователей - это 50к человек.
Лучше потратить усилия на accessibility , затронет большее количество пользователей
Китикет
Ведь из статистики посещений на ie большинство - роботы, так что проценты там сильно преувеличены
p
Подскажите, NEXT умеет переключать компоненты в зависимости от url, как react-router? <Switch> <Route path="/about"> <About /> </Route> <Route path="/users"> <Users /> </Route> <Route path="/"> <Home /> </Route> </Switch>
Валік
Зачем роботам маскироваться под ie, это какойто злой план тормозить прогресс?
Китикет
Ну даже моя мать щас с ie пересела
p
@nextjs_ru . Там свой роутинг, но можно и реакт-роутер впилить
да что свой я уже понял, не ясно как свич врубить пока...
p
а вроде как в hookrouter
Without Hands
Насколько я буду выглядить здоровым человеком если задиспачу экшн в редюсере?
Alex
Это жесть, ради 0.01% юзеров бизнес убивает жизнь своим разрабам)
Ну если эти юзеры приносят достаточно бабла чтобы окупать мертвых разрабов, почему бы и нет А если не приносят, то это можно и до бизнеса донести, адекватный бизнес поймет
Валентин
Without Hands
По канонам у редьюсера не должно быть сайд эффектов
сам понял что буду как дурачок выглядить, но спасибо в любом случае
GoDenis
господа, есть такой пример использования react-virtualized https://codesandbox.io/s/my2902rzw9?from-embed
GoDenis
как мне брать массив для рендера из стейта этого же объекта?
Иван
Ребят. Не кто не может посоветовать image editor какой-то норм ? (Бесплатный, без логотипов и т.д). Нужно кропить, вертеть, текст добавлять подобное.
Иван
Ты не понял, мне для реакта, либу какую-то. А не просто как фотошоп ))
Anonymous
Как обойти такое? В пагинации под таблицей в середине инпут, в котором отображается и задаётся текущая страница. Код: https://pastebin.com/pZeDje7R. Получается ввести только один символ, т. к. onChange меняет значение текущей страницы, а это значение стоит в if условии, окружающем пагинацию.
Anonymous
Если из инпута убрать value, равное текущей странице и дебаунсить уcтановку нового её значения в onChange, то работает. Полный код в репо.
Иван
Глянул, супер. А там логотип их можно как-то убрать ?
Иван
https://ui.toast.com/tui-image-editor/ не пойдет?
Evgeny
Глянул, супер. А там логотип их можно как-то убрать ?
сам не выпиливал, надо доку читать. В крайнем случае там MIT лицензия, можно форкнуть и выпилить, что не нравится =)
GoDenis
господа, как мне поменять стейт родительского элемента?
Igor
господа, как мне поменять стейт родительского элемента?
Передать по пропсам дочернему компоненту функцию-callback, которая объявлена в родительском компоненте и меняет его state.
Anonymous
сделать input value и currentPage разными значениями?
Примерно это я пытался сделать по-разному. Поделитесь решением? Полный код в репо, коли посмотрите.
Evgeny
Примерно это я пытался сделать по-разному. Поделитесь решением? Полный код в репо, коли посмотрите.
а в чем проблема? на onChange меняешь значение input value в стейте и в нем же вызываешь изменение currentPage, но уже с дебаунсингом
Юрий
подскажите такой вопрос, ответы на эти вопросы вообще не как не могу найти! авторизация с jwt, человек авторизировался, его данные в стейте, его токены в локалсторадж у него есть доступ к закрытым страницам. что должно произойти когда он обновит страницу? 1) по чему ориентироваться авторизирован или нет? Флаг в редаксе? он же после перезагрузке будет false. как он снова поменяться на true и кем? 2) нужно ли создавать отдельный запрос которые будет каждый раз делаться при инициализации APP для проверки авторизован или нет? 3 ) можно ли при обновлении страницы, проверять локалсторадж, если там есть данные то давать доступ к юзеру (то есть пока нету какого либо запроса на сервер, он может находиться), данные из сторадж так же заполнить в стейт редакса? сделать следующее: const initialState = localData && localData.client ? {...localData.client} : {};
Anonymous
подскажите такой вопрос, ответы на эти вопросы вообще не как не могу найти! авторизация с jwt, человек авторизировался, его данные в стейте, его токены в локалсторадж у него есть доступ к закрытым страницам. что должно произойти когда он обновит страницу? 1) по чему ориентироваться авторизирован или нет? Флаг в редаксе? он же после перезагрузке будет false. как он снова поменяться на true и кем? 2) нужно ли создавать отдельный запрос которые будет каждый раз делаться при инициализации APP для проверки авторизован или нет? 3 ) можно ли при обновлении страницы, проверять локалсторадж, если там есть данные то давать доступ к юзеру (то есть пока нету какого либо запроса на сервер, он может находиться), данные из сторадж так же заполнить в стейт редакса? сделать следующее: const initialState = localData && localData.client ? {...localData.client} : {};
Кртако, да, при загрузке приложения проверка наличия токена и переключение флажка авторизации в true. У меня в репо есть приложение, делающее это. Токе лучше в http only cookie хрнаить.
Anonymous
По мне, да. Это единственный способ узнать, что пользователь присутствует.
Evgeny
выложи код хотя бы на gist.github.com, а то нечитаемо
Юрий
По мне, да. Это единственный способ узнать, что пользователь присутствует.
вот этот вопрос, выглядит не правильно? можно ли при обновлении страницы, проверять локалсторадж, если там есть данные то давать доступ к юзеру (то есть пока нету какого либо запроса на сервер, он может находиться), при запросе в любом случае в хедере будут токены и если что-то не так то выкинет его данные из сторадж так же заполнить в стейт редакса? сделать следующее: const initialState = localData && localData.client ? {...localData.client} : {};
Anonymous
При запуске приложения флаг авторизованности переключается в true. Далее страницы проверяют этот флаг.
Anonymous
Класть токен в store потребности нет, только флаг авторизованности.
Китикет
Берутся данные юзера из ls, а на запросе стоит интерцептор, который при ошибке авторизации токен обновляет (если возможно), либо из приложения выкидывает с обьяснением
Китикет
А чтобы у юзера при заходе на страницу не мелькало что он не авторизован, надо уже в initialState это подтягивать
Китикет
У меня это уже сделано
И в чем проблема тогда)
Юрий
Но а если на странице которую обновили, нету не каких запросов?
Китикет
Но а если на странице которую обновили, нету не каких запросов?
Тогда нет никакого приватного контента, а значит ограничивать юзера нет смысла
Anonymous
У меня в App.js const App = () => { useEffect(() => { store.dispatch(loadUser()); }, []);
Китикет
Но можно добавить запрос чисто для проверки что токен валидный, и выкидывать из приложения так же как в интерцепторе при аналогичной ошибке, если сильно охото
Юрий
Тогда нет никакого приватного контента, а значит ограничивать юзера нет смысла
У меня сейчас сделано как я написал выше, У меня приватные роуты проверяются на наличии данных в локалсторадже, а не по флагу в редаксе, как тут написали. Данные есть- все окей, ты на приватной странице остаётся, а потом если пройдёт запрос, тогда уже есть вероятность что тебя выкинет если у тебя проблема с токенами
Китикет
Но можно добавить запрос чисто для проверки что токен валидный, и выкидывать из приложения так же как в интерцепторе при аналогичной ошибке, если сильно охото
Главное чтобы это не задерживало время для доступа к странице авторизованному юзеру, то есть не мелькало то, что он будто не авторизован
Юрий
Anonymous
Есть же useDispatch
В том же файле далее <Provider store={store}>.
Китикет
То есть у меня в целом норм сделано? На первом же запросе в случае чего, вылогинет, это норм?
Да, опять же говорю, если у юзера токен невалиден, он без запросов к серверу все равно физически не может увидеть запрещенный ему контент
Anonymous
Есть же mapDispatchToProps и connect
Тут у меня не было потребности подбирать инфу со стора.
Китикет
Но, если сильно охото, можно добавлять дополнительный запрос для проверки валидности, так будет удобнее для юзера, получается он сразу же узнает что не авторизован
Юрий
Да, опять же говорю, если у юзера токен невалиден, он без запросов к серверу все равно физически не может увидеть запрещенный ему контент
Да, он зайдёт например куда то там где есть запрос и сразу или обновиться токен или вылогинет его, я просто поэтому и хочет уточнить, нормально ли такой подход или лучше всегда дёргать метод какой то
Eugene
Для подборки инфы со стора есть же useSelector 🤔
Китикет
Тут у меня не было потребности подбирать инфу со стора.
А mDTP и не нужен для инфы из стора, он нужен чтобы экшны привязанные к диспатчу вызвать и не обращаться напрямую к инстансу стора
Юрий
Но, если сильно охото, можно добавлять дополнительный запрос для проверки валидности, так будет удобнее для юзера, получается он сразу же узнает что не авторизован
А данные из ls напрямую в стейт редакса нормально добавлять таким вот способом? const initialState = localData && localData.client ? {...localData.client} : {};
Anonymous
useDispatch, useSelector лишают компонент промежуточного слоя между данными и их отображением. Компонент станет и видом и источником инфы,т. к. её получает.
Eugene
Ну обычно(наверное) если идет запрос с неавторизованным пользователем - приходит 401 not authorized- можно его обрабатывать