🦜
ну типо, вы ща приводите вещи, от которых отказываются еще на формировании UI
Danila
Нет, просто выводят в таблицу и у всёх всё ок же
Danila
Отказываться надо только если придумать требование открывать это на мобиле
А оно никому в голову не приходит
Igor
Igor
Например, хорошая практика отобразить/не отобразить какой-то грид
🦜
кароче нужно смотреть на данные и уже после проектировать ui. Я так подхожу к работе
Danila
Igor
Igor
Но изначально сделай 3-4 грида, сколько поместится. Нужно больше - сделай ты модалку, да что угодно, где ты выберешь, что тебе отобразить
🦜
Igor
🦜
Ну норм же, да
Здесь необычный ui и нет указателя на то, что блоки draggble и есть swipe
Anonymous
Есть такой сценарий: получаю уведомление>кликаю на него>перехожу в компонент>в cDM есть хэндлер navigator.serviceWorker.onMessage, но он не срабатывает, т.к сообщение получено фоновым путем. Как компонент может обработать фоновое уведомление?
Aлексей
🦜
https://cdn.dribbble.com/users/1038568/screenshots/4000477/test_02_02.gif
Вот это в принципе и списком можно реализовать с хедером
🦜
🦜
Еще раз. Главное данные, потом ui
Юрий
Ingwarrr
народ привет, опять тут нуб с нубскими вопросами)
Как внутри компонента повесить evenlistener на элемент дом, который рендерится не реактом и по клику вызвать dispatch()
стейтом управляю с помощью useReducer
🦜
Sergey
Ingwarrr
ну у меня алерт с рефом на ноду работает внутри юзэффекта, а вот диспатч не отрабатывает
Alexander
Есть какие-то библиотеки виртуализации, которым пофиг, как расположены элементы? А то во всех нужно указывать колонки, строки, высоту...
Sergey
Sergey
логически подумай
Sergey
как иначе знать размер всех элементов?
Юрий
Sergey
Sergey
ты вообще знаешь как работает виртуальный рендеринг?
Sergey
то что там элементы НЕ РЕНДЕРЯТСЯ
Sergey
и для них не создается DOM элемента, а значит узнать размер невозможно
Sergey
рендерится только то, что видно сейчас на экране
Vladimir
ух как меня бесит виртуализация тем, что в ней браузерный поиск не работает
Sergey
хотя конечно проще сделать как гитхаб сделал (уже нет (((
Aлексей
Sergey
Aлексей
Потом юзаешь ее: api().get('your_api_point')
Sergey
а лучше что-то вроде
const request = (method, url, body, query) =>
fetch(...
// ---
const getUsers = ({ limit }) =>
request("GET", "/users", null, { limit })
Юрий
и это передавать в запрос 3им параметров? то есть настройки?
думаешь не стоит делать типо такого:
axios.interceptors.request.use(function (config) {
const token = store.getState().session.token;
config.headers.Authorization = token;
return config;
});
Юрий
или в доках есть такой вариант
axios.defaults.headers.common['Authorization'] = store.getState().session.token;
Sergey
🦜
Nikita
+
Aлексей
Sergey
Aлексей
и что
Человек про axios спрашивал
Sergey
может быть и так, если нравится городить axios
const getUsers = ({ limit }) =>
axios.get("/users", null, { limit })
Sergey
главное отделять методы запроса от логики
Юрий
просто, если токена например нету или он протух что тогда?
если нету то подставит в запросе null ? вернется ошибка и потом уже другой интерсепшен будет обрабатывать?
🦜
Aлексей
Юрий
Tor
Можно ещё делать рефреш токена, если токен протух, и пробовать сделать повторный запрос с новым токеном
Юрий
без перебрасываний на логин
🦜
Sergey
Sergey
господи
Sergey
вы че абстракциями пользоваться не можете?
Sergey
реально?
Юрий
то есть будет нормально, если я создам отдельную функция которая будет возвращать хедер с токеном и передавать 3им параметром? не нужно какой то интерспершн что бы не подставлять, а это было и так при каждом запросе?
Sergey
const request = (url, body, query) => {
// here your logic with tokens
return AXIOS or FETCH
}
const getUsers = ({ limit }) =>
request("/users", null, { limit })
Sergey
Sergey
лучше сделай отдельную функцию, которая будет независима от урла, и прочего, и будет внутри себя делать запрос и подставлять токены и прочее
Юрий
Sergey
Sergey
Eugene
с axios очень нравится описывать запросы 🤔
Vladimir
Aлексей
Sergey
Sergey
ну тем, что нет слоя отделяющего всё приложение от реализации бекенда