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:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user