fix(app): suppress empty-state flash by gating on data-loaded flag

Add a  flag set after initial data fetch completes so
  SessionList and RecapList don't briefly show their empty/onboarding
  states before content arrives.
This commit is contained in:
tommy0103
2026-06-15 02:07:13 +08:00
parent b7506ee765
commit 42c7c0da66
4 changed files with 8 additions and 4 deletions
+3 -1
View File
@@ -9,6 +9,7 @@ defineOptions({ name: 'RecapList' });
const router = useRouter();
const route = useRoute();
const recaps = ref([]);
const recapsLoaded = ref(false);
const kind = computed(() => route.query.kind || 'weekly');
const showGenerate = inject('recapGenerateOpen', ref(false));
@@ -79,6 +80,7 @@ async function loadRecaps() {
if (data?.cards) results.push({ ...data, _filename: f });
}
recaps.value = results;
recapsLoaded.value = true;
}
let unsub;
@@ -134,7 +136,7 @@ onUnmounted(() => { unsub?.(); });
</section>
</div>
<div class="content empty-content" v-else>
<div class="content empty-content" v-else-if="recapsLoaded">
<section class="tl-section">
<div class="tl-section-head">
<span class="year">No {{ kind }} recaps yet</span>
+2 -2
View File
@@ -93,7 +93,7 @@ function obeliskStyle(session) {
<template>
<div class="session-list-wrap">
<!-- Empty state: no data source / debug toggle -->
<div v-if="debugEmpty || (!visibleSessions.length && !state.query)" class="empty-content">
<div v-if="state.loaded && (debugEmpty || (!visibleSessions.length && !state.query))" class="empty-content">
<div class="empty-eyebrow">
<span class="diamond"></span>
<span>No data source connected</span>
@@ -128,7 +128,7 @@ function obeliskStyle(session) {
</div>
<!-- Empty state: search returned nothing -->
<div v-else-if="!visibleSessions.length" class="empty">
<div v-else-if="state.loaded && !visibleSessions.length" class="empty">
No sessions here.
<span class="hint">{{ state.query ? 'Try a different search term.' : 'Press / to search.' }}</span>
</div>