Show loading indicator before listing sessions
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { Component, createSignal, Show, For, createEffect, onMount, onCleanup, createMemo } from "solid-js"
|
import { Component, createSignal, Show, For, createEffect, onMount, onCleanup, createMemo } from "solid-js"
|
||||||
import { Trash2 } from "lucide-solid"
|
import { Loader2, Trash2 } from "lucide-solid"
|
||||||
|
|
||||||
import type { Instance } from "../types/instance"
|
import type { Instance } from "../types/instance"
|
||||||
import { getParentSessions, createSession, setActiveParentSession, deleteSession, loading } from "../stores/sessions"
|
import { getParentSessions, createSession, setActiveParentSession, deleteSession, loading } from "../stores/sessions"
|
||||||
@@ -26,6 +26,7 @@ const InstanceWelcomeView: Component<InstanceWelcomeViewProps> = (props) => {
|
|||||||
)
|
)
|
||||||
|
|
||||||
const parentSessions = () => getParentSessions(props.instance.id)
|
const parentSessions = () => getParentSessions(props.instance.id)
|
||||||
|
const isFetchingSessions = createMemo(() => Boolean(loading().fetchingSessions.get(props.instance.id)))
|
||||||
const isSessionDeleting = (sessionId: string) => {
|
const isSessionDeleting = (sessionId: string) => {
|
||||||
const deleting = loading().deletingSession.get(props.instance.id)
|
const deleting = loading().deletingSession.get(props.instance.id)
|
||||||
return deleting ? deleting.has(sessionId) : false
|
return deleting ? deleting.has(sessionId) : false
|
||||||
@@ -254,6 +255,9 @@ const InstanceWelcomeView: Component<InstanceWelcomeViewProps> = (props) => {
|
|||||||
<div class="flex-1 flex flex-col gap-4 min-h-0">
|
<div class="flex-1 flex flex-col gap-4 min-h-0">
|
||||||
<Show
|
<Show
|
||||||
when={parentSessions().length > 0}
|
when={parentSessions().length > 0}
|
||||||
|
fallback={
|
||||||
|
<Show
|
||||||
|
when={isFetchingSessions()}
|
||||||
fallback={
|
fallback={
|
||||||
<div class="panel panel-empty-state flex-1 flex flex-col justify-center">
|
<div class="panel panel-empty-state flex-1 flex flex-col justify-center">
|
||||||
<div class="panel-empty-state-icon">
|
<div class="panel-empty-state-icon">
|
||||||
@@ -275,6 +279,16 @@ const InstanceWelcomeView: Component<InstanceWelcomeViewProps> = (props) => {
|
|||||||
</Show>
|
</Show>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
>
|
||||||
|
<div class="panel panel-empty-state flex-1 flex flex-col justify-center">
|
||||||
|
<div class="panel-empty-state-icon">
|
||||||
|
<Loader2 class="w-12 h-12 mx-auto animate-spin text-muted" />
|
||||||
|
</div>
|
||||||
|
<p class="panel-empty-state-title">Loading Sessions</p>
|
||||||
|
<p class="panel-empty-state-description">Fetching your previous sessions...</p>
|
||||||
|
</div>
|
||||||
|
</Show>
|
||||||
|
}
|
||||||
>
|
>
|
||||||
<div class="panel flex flex-col flex-1 min-h-0">
|
<div class="panel flex flex-col flex-1 min-h-0">
|
||||||
<div class="panel-header">
|
<div class="panel-header">
|
||||||
|
|||||||
Reference in New Issue
Block a user