diff --git a/apps/web/src/app/(authenticated)/settings/domains/page.tsx b/apps/web/src/app/(authenticated)/settings/domains/page.tsx index 3282611..20ca4a7 100644 --- a/apps/web/src/app/(authenticated)/settings/domains/page.tsx +++ b/apps/web/src/app/(authenticated)/settings/domains/page.tsx @@ -367,13 +367,17 @@ export default function DomainsPage(): ReactElement { const [isCreating, setIsCreating] = useState(false); useEffect(() => { + if (!workspaceId) { + setIsLoading(false); + return; + } void loadDomains(); - }, []); // loadDomains is defined in this scope and stable + }, [workspaceId]); async function loadDomains(): Promise { try { setIsLoading(true); - const response = await fetchDomains(); + const response = await fetchDomains(undefined, workspaceId ?? undefined); setDomains(response.data); setError(null); } catch (err) { @@ -383,9 +387,8 @@ export default function DomainsPage(): ReactElement { } } - function handleEdit(domain: Domain): void { + function handleEdit(_domain: Domain): void { // TODO: Open edit modal/form - console.log("Edit domain:", domain); } async function handleDelete(domain: Domain): Promise { @@ -407,6 +410,8 @@ export default function DomainsPage(): ReactElement { await createDomain(data, workspaceId ?? undefined); setCreateOpen(false); await loadDomains(); + } catch (err) { + setError(err instanceof Error ? err.message : "Failed to create domain."); } finally { setIsCreating(false); } diff --git a/apps/web/src/lib/api/domains.ts b/apps/web/src/lib/api/domains.ts index a996560..256f0a3 100644 --- a/apps/web/src/lib/api/domains.ts +++ b/apps/web/src/lib/api/domains.ts @@ -44,7 +44,10 @@ export interface DomainFilters { /** * Fetch all domains */ -export async function fetchDomains(filters?: DomainFilters): Promise> { +export async function fetchDomains( + filters?: DomainFilters, + workspaceId?: string +): Promise> { const params = new URLSearchParams(); if (filters?.search) { @@ -60,7 +63,7 @@ export async function fetchDomains(filters?: DomainFilters): Promise>(endpoint); + return apiGet>(endpoint, workspaceId); } /**