diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx index bbc9e9aa0..f2a777fd3 100644 --- a/packages/app/src/pages/layout.tsx +++ b/packages/app/src/pages/layout.tsx @@ -885,7 +885,7 @@ export default function Layout(props: ParentProps) { return (
@@ -902,7 +902,7 @@ export default function Layout(props: ParentProps) { > - +
@@ -944,6 +944,17 @@ export default function Layout(props: ParentProps) { ) } + const SessionSkeleton = (props: { count?: number }): JSX.Element => { + const items = Array.from({ length: props.count ?? 4 }, (_, index) => index) + return ( +
+ + {() =>
} + +
+ ) + } + const SortableProject = (props: { project: LocalProject; mobile?: boolean }): JSX.Element => { const sortable = createSortable(props.project.worktree) const selected = createMemo(() => { @@ -1105,6 +1116,7 @@ export default function Layout(props: ParentProps) { return `${kind} : ${name}` }) const open = createMemo(() => store.workspaceExpanded[props.directory] ?? true) + const loading = createMemo(() => open() && workspaceStore.status !== "complete" && sessions().length === 0) const hasMore = createMemo(() => local() && workspaceStore.sessionTotal > workspaceStore.session.length) const loadMore = async () => { if (!local()) return @@ -1166,6 +1178,9 @@ export default function Layout(props: ParentProps) { > New session + + + {(session) => } @@ -1200,6 +1215,7 @@ export default function Layout(props: ParentProps) { .filter((session) => !session.parentID) .toSorted(sortSessions), ) + const loading = createMemo(() => workspaceStore.status !== "complete" && sessions().length === 0) const hasMore = createMemo(() => workspaceStore.sessionTotal > workspaceStore.session.length) const loadMore = async () => { setWorkspaceStore("limit", (limit) => limit + 5) @@ -1214,6 +1230,9 @@ export default function Layout(props: ParentProps) { class="size-full flex flex-col py-2 overflow-y-auto no-scrollbar" >