fix(scope): await router.isReady before mount so refreshed ?bot locks the right bot

This commit is contained in:
saopig1 committed 2026-05-30 15:22:51 +08:00
1 parent 463a8e2f8a
commit 593b42830c
2 files changed
+8 -2

No files matched your search

+4 -1
View File
@@ -149,7 +149,10 @@ onMounted(async () => {
// router guard sets scopedBotId tentatively from ?bot, but applyScopeFromQuery
// validates it against the loaded bots (locks if it exists, clears if stale).
await playerStore.fetchBots();
const qBot = typeof route.query.bot === 'string' ? route.query.bot : null;
// Read from the authoritative current route (not a possibly-stale reactive
// snapshot) so the scope reconciles against the ?bot present at refresh time.
const routeBot = router.currentRoute.value.query.bot;
const qBot = typeof routeBot === 'string' ? routeBot : null;
playerStore.applyScopeFromQuery(qBot);
});
+4 -1
View File
@@ -11,4 +11,7 @@ installApiClient();
const app = createApp(App);
app.use(createPinia());
app.use(router);
app.mount('#app');
// Wait for the initial navigation (and the beforeEach guard that reads ?bot)
// to fully resolve before mounting, so the reactive route query is populated
// when App.onMounted runs and the dedicated-bot scope locks the right bot.
router.isReady().then(() => app.mount('#app'));