Files
yaak/apps/yaak-client/hooks/useActiveWorkspaceChangedToast.tsx
Gregory Schier 7314aedc71 Merge main into proxy branch (formatting and docs)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:09:59 -07:00

32 lines
984 B
TypeScript

import { useAtomValue } from "jotai";
import { useEffect, useState } from "react";
import { InlineCode } from "@yaakapp-internal/ui";
import { showToast } from "../lib/toast";
import { activeWorkspaceAtom } from "./useActiveWorkspace";
export function useActiveWorkspaceChangedToast() {
const activeWorkspace = useAtomValue(activeWorkspaceAtom);
const [id, setId] = useState<string | null>(activeWorkspace?.id ?? null);
useEffect(() => {
// Early return if same or invalid active workspace
if (id === activeWorkspace?.id || activeWorkspace == null) return;
setId(activeWorkspace?.id ?? null);
// Don't notify on the first load
if (id === null) return;
showToast({
id: `workspace-changed-${activeWorkspace.id}`,
timeout: 3000,
message: (
<>
Activated workspace{" "}
<InlineCode className="whitespace-nowrap">{activeWorkspace.name}</InlineCode>
</>
),
});
}, [activeWorkspace, id]);
}