Newcomer_i, бегать в таблицу каждый раз когда происходит переход по роуту, это что-то из будущего или я что-то пропустил.) Выше ссылка на док там все прекрасно написано с примерами. Если юзер авторизовался у вас уже есть его user_id или статус авторизации. Примерно так:
Andy Koshman, я не понимаю логику делать это в реактивном приложении. Если приложение загружено то оно загружено, а проверять активность можно во время загрузки/перезагрузки когда проверяется сам статус авторизации. И если время последней активности, в момент загрузки приложения больше часа, то разлогинивать.
то я не знаю, как отловить просрочку авторизации
Почему бы не стрелять в LocalStorage а не в бд. В LocalStorage обновлять время взаимодействия с сервером и по нему сверять. ну или с кукой. Короче стучать по базе каждый раз, такое себе.
Andy Koshman, обычно проверка на checkLogin происходит в момент логина или в момент перезагрузки приложения. Зачем там таймерами долбить в бэк вообще не понятно. Если время токена авторизации вышло, ну и выбрасывайте его на страницу входа в чем проблема. Направление https://www.youtube.com/watch?v=059fh7Gobho
Если авторизация на серваке проверена и он отдал isAuth true что уже в вашем сторе есть, дальше отсюда и работать и вместо геткуки в роутере также чекать isAuth из стора. При перезагруке приложения isAuth сбросится на false а значит произойдет запрос на сервак для проверки. А данные для проверки могут быть в том же сторе и вытягиваться из LocalStorage.Как-то так
вотчеры стоят на data() данные и возвращают измененные данные обратно, это работает и проблема не в этом. А в том что ожидаемые булевые значения не применяются к data() по умолчанию, а принимаются только после создания обьекта через JSON.parse.
По сути, у вас на нижнем уровне данные поменялись, а родитель не увидел
Всмысле не увидел там сейчас все работает, и все всё видят. чтобы увидеть причину нужно изменить значение с "1" на 1 чтобы увидеть в чем проблема. Либо убрать computed-ы и прокинуть пропсы дальше как user.open_widgets это одно и тоже будет.
Ответы нужно обрабатывать из $data['callback_query']['data'] если параметр callback_data. Если параметр text то ответ обрабатывается из $data['message']['text']. Если нужно просто переходить по ссылка на кнопках, то это ["text"=>"О нас", "url"=>'https://site.co/about']
Это да, просто надо что-то попроще. В общем вычитал что не умеет Vue так делать без посторонней помощи. Так что для мелких деталей можно запустить интервал а для обновления постов или более тяжелых данных придется юзать функции стора при монтировании компонента и добавлять обновленные данные.
RAX7, вопрос не в том как обновить стор а в том ка вызвать данные из него для обновления интерфейса или данных в зависимости от измененного состояния. storeToRefs все делает как надо но в одной вкладке. Понятно что данные меняются они и без storeToRefs прекрасно изменяются и меняются. Проблема в том что соседний юзер увидит изменения только после инициализации компонента, т.е после перезахода на страницу. Но если он сидит на той же странице и ничего не трогает, изменений он не видит.
RAX7, это работает для одной вкладки, если рядом за компом будет сидеть юзер и ничего не трогать на его странице интерфейс не обновится. Или вы об этом?
0xD34F Можешь объяснить как здесь значение возвращается в родительский компонент. Просто сам счас с этим столкнулся и не хочу создавать вопрос так как вот он уже ответ здесь. Не понимаю как оно передается и как принимается в род.компоненте. Видно что апдейтит пропсы но не понятно как родитель принимает его.
defineProps и defineEmits являются макросами компилятора, которые можно использовать только внутри script setup. Их не нужно импортировать, они компилируются при script setup обработке.