import { useParams } from "@tanstack/react-router"; import { workspaceMetasAtom, workspacesAtom } from "@yaakapp-internal/models"; import { atom } from "jotai"; import { useEffect } from "react"; import { jotaiStore } from "../lib/jotai"; export const activeWorkspaceIdAtom = atom(null); export const activeWorkspaceAtom = atom((get) => { const activeWorkspaceId = get(activeWorkspaceIdAtom); const workspaces = get(workspacesAtom); return workspaces.find((w) => w.id === activeWorkspaceId) ?? null; }); export const activeWorkspaceMetaAtom = atom((get) => { const activeWorkspaceId = get(activeWorkspaceIdAtom); const workspaceMetas = get(workspaceMetasAtom); return workspaceMetas.find((m) => m.workspaceId === activeWorkspaceId) ?? null; }); export function useSubscribeActiveWorkspaceId() { const { workspaceId } = useParams({ strict: false }); useEffect(() => jotaiStore.set(activeWorkspaceIdAtom, workspaceId ?? null), [workspaceId]); }