summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/components/session-list.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/desktop/src/components/session-list.tsx')
-rw-r--r--packages/desktop/src/components/session-list.tsx28
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/desktop/src/components/session-list.tsx b/packages/desktop/src/components/session-list.tsx
new file mode 100644
index 000000000..e0819780d
--- /dev/null
+++ b/packages/desktop/src/components/session-list.tsx
@@ -0,0 +1,28 @@
+import { useSync, useLocal } from "@/context"
+import { Button, Tooltip } from "@/ui"
+import { VList } from "virtua/solid"
+
+export default function SessionList() {
+ const sync = useSync()
+ const local = useLocal()
+
+ return (
+ <VList data={sync.data.session} class="p-2">
+ {(session) => (
+ <Tooltip placement="right" value={session.title} class="w-full min-w-0">
+ <Button
+ size="sm"
+ variant="ghost"
+ classList={{
+ "w-full min-w-0 py-1 text-left truncate justify-start text-text-muted text-xs": true,
+ "text-text!": local.session.active()?.id === session.id,
+ }}
+ onClick={() => local.session.setActive(session.id)}
+ >
+ <span class="truncate">{session.title}</span>
+ </Button>
+ </Tooltip>
+ )}
+ </VList>
+ )
+}