From ffd87a3e8f9249b04b63eeb4203586dfde422b9f Mon Sep 17 00:00:00 2001 From: Waleed Date: Mon, 8 Jun 2026 17:26:48 -0700 Subject: [PATCH] fix(home,integrations): optical-center home input + integrations page render fix (#4916) * fix(integrations): correct integrationType key so the integrations page renders The merged email-verification blocks (zerobounce, neverbounce, millionverifier) were serialized into integrations.json with a typo'd `integrationTypes: ["sales"]` plural array instead of the singular `integrationType` the catalog reads. They fell into an `undefined` category bucket, and sorting sections by label threw "Cannot read properties of undefined (reading 'localeCompare')", erroring the whole page. - Correct the three entries to `integrationType: "sales"` (matches each block config's IntegrationType.Sales and the generator's output) - Defensively skip any integration without an integrationType when grouping so a single malformed catalog entry can never crash the page again * move home chat to optical center --- apps/sim/app/workspace/[workspaceId]/home/home.tsx | 14 +++++++++----- .../[workspaceId]/integrations/integrations.tsx | 1 + apps/sim/lib/integrations/integrations.json | 6 +++--- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/home/home.tsx b/apps/sim/app/workspace/[workspaceId]/home/home.tsx index b3bef698d2..3541f00143 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/home.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/home.tsx @@ -309,11 +309,12 @@ export function Home({ chatId, userName, userId, initialResourceId = null }: Hom
-
+ {/* Asymmetric padding biases the group up so the full cluster (heading + input + suggestions) sits at the optical center */} +

What should we get done{firstName ? `, ${firstName}` : ''}?

-
+
- initialViewUserInputRef.current?.populatePrompt(prompt)} - /> + {/* Anchored out of flow so expanding/collapsing never shifts the centered input */} +
+ initialViewUserInputRef.current?.populatePrompt(prompt)} + /> +
diff --git a/apps/sim/app/workspace/[workspaceId]/integrations/integrations.tsx b/apps/sim/app/workspace/[workspaceId]/integrations/integrations.tsx index fc2ccf2b66..6c077e94dd 100644 --- a/apps/sim/app/workspace/[workspaceId]/integrations/integrations.tsx +++ b/apps/sim/app/workspace/[workspaceId]/integrations/integrations.tsx @@ -54,6 +54,7 @@ const INTEGRATION_BY_LOWER_NAME: ReadonlyMap = new Map( const ALL_CATEGORY_SECTIONS: readonly { label: string; integrations: Integration[] }[] = (() => { const grouped = new Map() for (const integration of INTEGRATIONS) { + if (!integration.integrationType) continue const bucket = grouped.get(integration.integrationType) if (bucket) bucket.push(integration) else grouped.set(integration.integrationType, [integration]) diff --git a/apps/sim/lib/integrations/integrations.json b/apps/sim/lib/integrations/integrations.json index 7d2d122cc8..b6ca393af8 100644 --- a/apps/sim/lib/integrations/integrations.json +++ b/apps/sim/lib/integrations/integrations.json @@ -9539,7 +9539,7 @@ "triggerCount": 0, "authType": "api-key", "category": "tools", - "integrationTypes": ["sales"], + "integrationType": "sales", "tags": ["enrichment", "sales-engagement"] }, { @@ -9791,7 +9791,7 @@ "triggerCount": 0, "authType": "api-key", "category": "tools", - "integrationTypes": ["sales"], + "integrationType": "sales", "tags": ["enrichment", "sales-engagement"] }, { @@ -15180,7 +15180,7 @@ "triggerCount": 0, "authType": "api-key", "category": "tools", - "integrationTypes": ["sales"], + "integrationType": "sales", "tags": ["enrichment", "sales-engagement"] }, {