Better active workspace change notification

This commit is contained in:
Gregory Schier
2024-06-21 10:11:00 -07:00
parent b6cd6e415a
commit fdc96001db
3 changed files with 40 additions and 28 deletions

View File

@@ -0,0 +1,30 @@
import { useEffect, useState } from 'react';
import { InlineCode } from '../components/core/InlineCode';
import { useToast } from '../components/ToastContext';
import { useActiveWorkspace } from './useActiveWorkspace';
export function useAtiveWorkspaceChangedToast() {
const toast = useToast();
const activeWorkspace = useActiveWorkspace();
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 first load
if (id === null) return;
toast.show({
id: 'workspace-changed',
timeout: 3000,
message: (
<>
Switched workspace to <InlineCode>{activeWorkspace.name}</InlineCode>
</>
),
});
}, [activeWorkspace, id, toast]);
}