Skip to content

Commit d75fc5f

Browse files
committed
fix(search): gate meeting providers and correct Lucid tiles
1 parent a1ee856 commit d75fc5f

30 files changed

Lines changed: 342 additions & 35 deletions

File tree

‎apps/docs/components/icons.tsx‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ interface LucidIconProps extends SVGProps<SVGSVGElement> {}
66
export function LucidIcon(props: LucidIconProps) {
77
return (
88
<svg {...props} viewBox='0 0 192 192' fill='none' xmlns='http://www.w3.org/2000/svg'>
9-
<rect width='192' height='192' rx='32' fill='#282C33' />
10-
<g transform='translate(46 24)' fill='#FFFFFF'>
9+
<g transform='translate(46 24)' fill='currentColor'>
1110
<path d='M50 0L0 28.9V144.5L50 115.6V0Z' />
1211
<path d='M100 142.7V86.7L50 115.6V142.7H100Z' />
1312
</g>

‎apps/sim/app/o/[organizationId]/integrations/live-member-integrations.tsx‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ export function LiveMemberIntegrations({ organizationId, search }: LiveMemberInt
7474
)
7575
const available = LIVE_SEARCH_SOURCE_TYPES.filter(
7676
([provider]) =>
77+
((provider !== 'zoom' && provider !== 'google_meet') || approvals.has(provider)) &&
7778
LIVE_SEARCH_SCOPE_FIELDS[provider] &&
7879
((provider !== 'hubspot' && provider !== 'zoom') ||
7980
data.availableMcpConnectors.includes(provider) ||

‎apps/sim/app/o/[organizationId]/settings/components/integrations/live-search-settings.tsx‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,11 @@ export function LiveSearchSettings() {
8282
secretSource && GENERIC_SECRETS_META.name.toLowerCase().includes(search.toLowerCase())
8383
const availableToAdd = [
8484
...LIVE_SEARCH_SOURCE_TYPES.filter(
85-
([type]) => LIVE_SEARCH_SCOPE_FIELDS[type] && !added.some((row) => row.connectorType === type)
85+
([type]) =>
86+
((type !== 'zoom' && type !== 'google_meet') ||
87+
policies.data?.some((row) => row.connectorType === type)) &&
88+
LIVE_SEARCH_SCOPE_FIELDS[type] &&
89+
!added.some((row) => row.connectorType === type)
8690
).map(([type, meta]) => ({
8791
type,
8892
meta,

‎apps/sim/app/workspace/[workspaceId]/integrations/components/integrations-showcase/integrations-showcase.tsx‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { ComponentType } from 'react'
22
import { cn } from '@sim/emcn'
3+
import { getManagedMcpConnectorBgColor } from '@/lib/credential-groups/managed-mcp-connectors'
34
import { BrandTile } from '@/app/workspace/[workspaceId]/components/resource-tile'
45
import { getBlock } from '@/blocks'
56
import { getTileIconColorClass } from '@/blocks/icon-color'
@@ -47,11 +48,11 @@ const SHOWCASE_TILES = [
4748
] as const
4849

4950
/**
50-
* Resolves the brand background color for a block type from the block registry.
51-
* Returns `null` when the block is unknown or has no brand color configured.
51+
* Resolves the brand background color for workflow blocks and managed MCP connectors.
52+
* Returns `null` when neither catalog provides a brand color.
5253
*/
5354
function resolveBrandTileBg(blockType: string): string | null {
54-
return getBlock(blockType)?.bgColor || null
55+
return getBlock(blockType)?.bgColor || getManagedMcpConnectorBgColor(blockType) || null
5556
}
5657

5758
interface IntegrationTileProps {
@@ -61,7 +62,7 @@ interface IntegrationTileProps {
6162
}
6263

6364
/**
64-
* Brand-colored square tile that renders a block's icon. The unframed variant
65+
* Brand-colored square tile that renders an integration's icon. The unframed variant
6566
* is a 36px tile used in list rows and headers; the framed variant adds an
6667
* outer 44px halo used inside the showcase grid.
6768
*/

‎apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/tool-input/tool-input.tsx‎

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { useParams } from 'next/navigation'
2020
import { McpIcon, WorkflowIcon } from '@/components/icons'
2121
import { McpOperationPolicyEditor } from '@/components/mcp/operation-policy-editor'
2222
import { getManagedMcpConnectorIcon } from '@/lib/credential-groups/managed-mcp-connector-icons'
23+
import { getManagedMcpConnectorBgColor } from '@/lib/credential-groups/managed-mcp-connectors'
2324
import { MCP_SERVER_ADVANCED_TOOL_TYPE } from '@/lib/mcp/shared'
2425
import {
2526
getIssueBadgeLabel,
@@ -1200,7 +1201,10 @@ export const ToolInput = memo(function ToolInput({
12001201
serverToolItems.push({
12011202
label: 'Configure operations access',
12021203
value: `mcp-server-all-${mcpServerDrilldown}`,
1203-
iconElement: createToolIcon('var(--brand-agent)', ServerIcon),
1204+
iconElement: createToolIcon(
1205+
getManagedMcpConnectorBgColor(server?.managedConnectorId) ?? 'var(--brand-agent)',
1206+
ServerIcon
1207+
),
12041208
onSelect: () => {
12051209
if (allAlreadySelected) return
12061210
const filteredTools = selectedTools.filter(
@@ -1350,7 +1354,10 @@ export const ToolInput = memo(function ToolInput({
13501354
serverItems.push({
13511355
label: `${serverName} (${toolCount} tools)`,
13521356
value: `mcp-server-folder-${serverId}`,
1353-
iconElement: createToolIcon('#6366F1', ServerIcon),
1357+
iconElement: createToolIcon(
1358+
getManagedMcpConnectorBgColor(server.managedConnectorId) ?? '#6366F1',
1359+
ServerIcon
1360+
),
13541361
suffixElement: <ChevronRight className='size-[12px] text-[var(--text-tertiary)]' />,
13551362
onSelect: () => {
13561363
setMcpServerDrilldown(serverId)
@@ -1572,7 +1579,10 @@ export const ToolInput = memo(function ToolInput({
15721579
: advancedMcpServer?.managedConnectorId
15731580
? getManagedMcpConnectorIcon(advancedMcpServer.managedConnectorId)
15741581
: McpIcon
1575-
const mcpTileColor = mcpTool?.bgColor || 'var(--brand-agent)'
1582+
const mcpTileColor =
1583+
mcpTool?.bgColor ||
1584+
getManagedMcpConnectorBgColor(advancedMcpServer?.managedConnectorId) ||
1585+
'var(--brand-agent)'
15761586
const mcpToolSchema = isMcpTool ? tool.schema || mcpTool?.inputSchema : null
15771587

15781588
// Canonical name wins; stored title only when nothing resolves

‎apps/sim/components/icons.tsx‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ interface LucidIconProps extends SVGProps<SVGSVGElement> {}
66
export function LucidIcon(props: LucidIconProps) {
77
return (
88
<svg {...props} viewBox='0 0 192 192' fill='none' xmlns='http://www.w3.org/2000/svg'>
9-
<rect width='192' height='192' rx='32' fill='#282C33' />
10-
<g transform='translate(46 24)' fill='#FFFFFF'>
9+
<g transform='translate(46 24)' fill='currentColor'>
1110
<path d='M50 0L0 28.9V144.5L50 115.6V0Z' />
1211
<path d='M100 142.7V86.7L50 115.6V142.7H100Z' />
1312
</g>

‎apps/sim/ee/credential-groups/components/credential-group-provider-tile.tsx‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import type { ComponentType } from 'react'
22
import { getIntegrationTypesForOAuthServiceId } from '@sim/deployment-config/integration-availability'
33
import { INTEGRATION_METADATA } from '@sim/deployment-config/integration-metadata'
4-
import type { ManagedMcpConnectorId } from '@/lib/credential-groups/managed-mcp-connectors'
4+
import {
5+
getManagedMcpConnectorBgColor,
6+
type ManagedMcpConnectorId,
7+
} from '@/lib/credential-groups/managed-mcp-connectors'
58
import type { CredentialGroupProvider } from '@/lib/credential-groups/providers'
69
import { blockTypeToIconMap } from '@/lib/integrations/icon-mapping'
710
import { BrandTile } from '@/app/workspace/[workspaceId]/components/resource-tile'
@@ -18,7 +21,9 @@ export function CredentialGroupProviderTile({ provider, icon }: CredentialGroupP
1821
return (
1922
<BrandTile
2023
icon={blockTypeToIconMap[blockType] ?? icon}
21-
background={INTEGRATION_BY_TYPE.get(blockType)?.bgColor}
24+
background={
25+
INTEGRATION_BY_TYPE.get(blockType)?.bgColor ?? getManagedMcpConnectorBgColor(provider)
26+
}
2227
/>
2328
)
2429
}

‎apps/sim/hooks/mcp/use-mcp-tools.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { createLogger } from '@sim/logger'
1111
import { useQueryClient } from '@tanstack/react-query'
1212
import { McpIcon } from '@/components/icons'
1313
import { getManagedMcpConnectorIcon } from '@/lib/credential-groups/managed-mcp-connector-icons'
14+
import { getManagedMcpConnectorBgColor } from '@/lib/credential-groups/managed-mcp-connectors'
1415
import { createMcpToolId } from '@/lib/mcp/shared'
1516
import type { McpToolSchema } from '@/lib/mcp/types'
1617
import { useMcpToolsQuery } from '@/hooks/queries/mcp'
@@ -54,7 +55,7 @@ export function useMcpTools(workspaceId: string): UseMcpToolsResult {
5455
serverName: tool.serverName,
5556
type: 'mcp' as const,
5657
inputSchema: tool.inputSchema,
57-
bgColor: '#6366F1',
58+
bgColor: getManagedMcpConnectorBgColor(tool.managedConnectorId) ?? '#6366F1',
5859
icon: tool.managedConnectorId ? getManagedMcpConnectorIcon(tool.managedConnectorId) : McpIcon,
5960
}))
6061
}, [mcpToolsData])

‎apps/sim/lib/core/config/env.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,8 @@ export const env = createEnv({
580580
INSTAGRAM_CLIENT_SECRET: z.string().optional(), // Instagram App Secret (Business Login)
581581
SHOPIFY_CLIENT_ID: z.string().optional(), // Shopify OAuth client ID
582582
SHOPIFY_CLIENT_SECRET: z.string().optional(), // Shopify OAuth client secret
583+
ZOOM_SEARCH: z.boolean().optional(),
584+
GOOGLE_MEET_SEARCH: z.boolean().optional(),
583585
ZOOM_MCP_CLIENT_ID: z.string().optional(), // Zoom Search MCP OAuth client ID
584586
ZOOM_MCP_CLIENT_SECRET: z.string().optional(), // Zoom Search MCP OAuth client secret
585587
ZOOM_CLIENT_ID: z.string().optional(), // Zoom OAuth client ID

‎apps/sim/lib/core/config/feature-flags.ts‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ const FEATURE_FLAGS = {
6868
'Capture durable Workflow Agent tool history and continue existing retries. Supports workspace rollout targeting; version-aware memory storage remains active when capture is disabled.',
6969
fallback: 'AGENT_MEMORY_HISTORY',
7070
},
71+
'zoom-search': {
72+
description:
73+
'Enable Zoom Search setup, personal authorization and retrieval. Organization targeting only; disabled by default. Workflow Zoom is unchanged.',
74+
fallback: 'ZOOM_SEARCH',
75+
},
76+
'google-meet-search': {
77+
description:
78+
'Enable Google Meet Search setup and retrieval. Organization targeting only; disabled by default. Workflow Google Meet is unchanged.',
79+
fallback: 'GOOGLE_MEET_SEARCH',
80+
},
7181
'slack-search-shared-app': {
7282
description:
7383
'Enable the official shared Slack app for existing Search customers. Supports orgId ' +

0 commit comments

Comments
 (0)