Skip to content

Commit 97a72b1

Browse files
committed
fix(platform): list live skills and apps in Emir's directory groups and copy
Live skills split into Workspace skills and Built-in skills, live tabs and the Apps tab carried their own empty descriptions, and an app the deployment has not configured swapped its description for that reason. Skills list under Shared, as MCP servers already do; every tab's empty state reads Emir's copy; and an unconfigured app keeps its description in the directory, with the reason left on its page's disabled Connect.
1 parent 373b6dc commit 97a72b1

4 files changed

Lines changed: 10 additions & 32 deletions

File tree

‎apps/sim/app/(product)/o/[organizationId]/integrations/_components/integration-center/integration-center.tsx‎

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ export interface LiveTab {
5454
content: ReactNode
5555
empty: boolean
5656
settled: boolean
57-
/** What the tab reads with nothing in it yet. */
58-
emptyDescription: string
5957
}
6058

6159
interface IntegrationCenterProps {
@@ -74,8 +72,6 @@ interface IntegrationCenterProps {
7472
settled?: boolean
7573
/** The choice every tab lists within, such as the workspace whose credentials and skills it shows. */
7674
scopeFilter?: ReactNode
77-
/** What the Apps tab reads with nothing connected or available yet. */
78-
appsEmptyDescription?: string
7975
}
8076

8177
const RESOURCE_KIND = { skills: 'skill', mcps: 'mcp', credentials: 'credential' } as const
@@ -96,7 +92,6 @@ export function IntegrationCenter({
9692
createCredentialHref,
9793
settled = true,
9894
scopeFilter,
99-
appsEmptyDescription = 'Apps available to your organization appear here.',
10095
}: IntegrationCenterProps) {
10196
const pathname = usePathname()
10297
const router = useRouter()
@@ -422,10 +417,8 @@ export function IntegrationCenter({
422417
{term
423418
? 'Try a different name or clear your filters.'
424419
: current === 'apps'
425-
? appsEmptyDescription
426-
: live
427-
? live.emptyDescription
428-
: 'Your personal and shared connections appear here.'}
420+
? 'Apps available to your organization appear here.'
421+
: 'Your personal and shared connections appear here.'}
429422
</p>
430423
</section>
431424
)}

‎apps/sim/app/(product)/o/[organizationId]/integrations/_components/integrations-page/integrations-route.tsx‎

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -151,24 +151,15 @@ export function IntegrationsRoute({
151151
content: skills.query.error ? (
152152
<QueryFailure message='Could not load skills' query={skills.query} />
153153
) : (
154-
<>
155-
<LiveGroup
156-
title='Workspace skills'
157-
glyph='I044'
158-
rows={skills.rows.filter((row) => !row.builtin)}
159-
onOpen={(row) => skills.open(row.id)}
160-
/>
161-
<LiveGroup
162-
title='Built-in skills'
163-
glyph='I044'
164-
rows={skills.rows.filter((row) => row.builtin)}
165-
onOpen={(row) => skills.open(row.id)}
166-
/>
167-
</>
154+
<LiveGroup
155+
title='Shared'
156+
glyph='I044'
157+
rows={skills.rows}
158+
onOpen={(row) => skills.open(row.id)}
159+
/>
168160
),
169161
empty: !skills.rows.length && !skills.query.error,
170162
settled: skills.settled,
171-
emptyDescription: 'Skills in this workspace appear here.',
172163
}
173164
const mcpTab: LiveTab | undefined = workspace && {
174165
actions: mcps.connectHref && (
@@ -193,7 +184,6 @@ export function IntegrationsRoute({
193184
),
194185
empty: !servers.length && !mcps.query.error,
195186
settled: Boolean(mcps.servers),
196-
emptyDescription: 'MCP servers in this workspace appear here.',
197187
}
198188
return (
199189
<IntegrationsPage>

‎apps/sim/app/(product)/o/[organizationId]/integrations/_components/live-skills/live-skills.ts‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ export function useLiveSkills(pageWorkspaceId?: string) {
3939
id: skill.id,
4040
name: skill.name,
4141
description: skill.description,
42-
builtin: Boolean(skill.readOnly),
4342
href: serializeCenter(base, { resource: skill.id, resourceTab: null }),
4443
}))
4544
const open = (resource: string) =>

‎apps/sim/app/(product)/o/[organizationId]/integrations/_components/workspace-integrations/workspace-directory.tsx‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,7 @@ import {
1212
integrationCenterHref,
1313
withIntegrationsWorkspace,
1414
} from '@/platform/lib/integrations/center-navigation'
15-
import {
16-
appCredentials,
17-
UNCONFIGURED_APP_REASON,
18-
type WorkspaceApp,
19-
} from '@/platform/lib/integrations/workspace-catalog'
15+
import { appCredentials, type WorkspaceApp } from '@/platform/lib/integrations/workspace-catalog'
2016

2117
/** Credential kinds that hold a pasted secret, which the Credentials tab lists beside the secrets. */
2218
const SECRET_CREDENTIAL_TYPES: ReadonlySet<string> = new Set(['service_account', 'personal_token'])
@@ -67,7 +63,7 @@ export function useWorkspaceDirectory(
6763
providerId: app.id,
6864
href: appHref(app.id),
6965
name: app.name,
70-
description: app.access === 'unconfigured' ? UNCONFIGURED_APP_REASON : app.description,
66+
description: app.description,
7167
category: app.category,
7268
connected: connected.length > 0,
7369
credentialCount: connected.length,

0 commit comments

Comments
 (0)