summaryrefslogtreecommitdiffstatshomepage
path: root/frontend/src/lib/Tabs.ts
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/lib/Tabs.ts')
-rw-r--r--frontend/src/lib/Tabs.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/frontend/src/lib/Tabs.ts b/frontend/src/lib/Tabs.ts
new file mode 100644
index 0000000..1c43068
--- /dev/null
+++ b/frontend/src/lib/Tabs.ts
@@ -0,0 +1,18 @@
+import { getContext, setContext } from 'svelte';
+import { writable, type Writable } from 'svelte/store';
+
+type Tab = string;
+type Tabs = Record<Tab, { title: string; badge?: boolean }>;
+
+interface TabContext {
+ tabs: Tabs;
+ current: Tab;
+}
+
+export function setTabContext(context: TabContext) {
+ return setContext<Writable<TabContext>>('tabs', writable(context));
+}
+
+export function getTabContext() {
+ return getContext<Writable<TabContext>>('tabs');
+}