Skip to content

Commit 79de765

Browse files
committed
fix(org): give a member's Generic Secrets page the header other integrations have
1 parent 77803d7 commit 79de765

2 files changed

Lines changed: 44 additions & 9 deletions

File tree

‎apps/sim/platform/embedded/app/(shell)/integrations/_components/integrations-page/integrations-page.tsx‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,23 @@ interface IntegrationsPageProps {
88
children: ReactNode
99
}
1010

11+
interface IntegrationsBackProps {
12+
label: string
13+
/** For a page with its own guard on leaving. */
14+
onBack: () => void
15+
}
16+
17+
/** The way back on a page that decides for itself whether it can be left. */
18+
export function IntegrationsBack({ label, onBack }: IntegrationsBackProps) {
19+
return (
20+
<nav aria-label='Integration navigation' className={styles.back}>
21+
<Chip icon='I093' onClick={onBack}>
22+
{label}
23+
</Chip>
24+
</nav>
25+
)
26+
}
27+
1128
export function IntegrationsPage({ back, children }: IntegrationsPageProps) {
1229
return (
1330
<main className={styles.page}>

‎apps/sim/platform/embedded/app/(shell)/integrations/_components/secrets-editor/secrets-editor.tsx‎

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import {
3434
SectionStack,
3535
} from '@/platform/embedded/app/(shell)/_components/section-parts/section-parts'
3636
import { useServerDraft } from '@/platform/embedded/app/(shell)/_components/use-server-draft'
37+
import { IntegrationsBack } from '@/platform/embedded/app/(shell)/integrations/_components/integrations-page/integrations-page'
38+
import { ProviderHeading } from '@/platform/embedded/app/(shell)/integrations/_components/provider-heading/provider-heading'
3739
import {
3840
NewRow,
3941
SavedRow,
@@ -47,11 +49,33 @@ import {
4749
} from '@/platform/embedded/app/(shell)/integrations/_components/secrets-editor/secrets-draft'
4850
import styles from '@/platform/embedded/app/(shell)/integrations/_components/secrets-editor/secrets-editor.module.css'
4951
import { useGenericSecrets } from '@/platform/embedded/lib/data/generic-secrets'
52+
import { memberSecretMetadata } from '@/platform/embedded/lib/integrations/metadata.generated'
5053
import { toast } from '@/platform/shared/toast'
5154

5255
const logger = createLogger('SecretsManager')
5356
const MAX_ENV_PASTE_ROWS = 10_000
5457

58+
interface SecretsHeaderProps {
59+
mode: SecretSourceMode
60+
backLabel: string
61+
onBack: () => void
62+
}
63+
64+
/** A member reads this as one more integration's page, and an admin as a section of Sources. */
65+
function SecretsHeader({ mode, backLabel, onBack }: SecretsHeaderProps) {
66+
if (mode === 'organization')
67+
return <DetailHeader backLabel={backLabel} onBack={onBack} title={memberSecretMetadata.name} />
68+
return (
69+
<>
70+
<IntegrationsBack label={backLabel} onBack={onBack} />
71+
<ProviderHeading
72+
name={memberSecretMetadata.name}
73+
description={memberSecretMetadata.description}
74+
/>
75+
</>
76+
)
77+
}
78+
5579
interface SecretsEditorProps {
5680
mode: SecretSourceMode
5781
/** The way back, for a member who came from a filtered list. */
@@ -75,12 +99,7 @@ export function SecretsEditor({ mode, backHref }: SecretsEditorProps) {
7599
if (!editor)
76100
return (
77101
<SectionStack>
78-
<DetailHeader
79-
backLabel={back.text}
80-
onBack={() => router.push(back.href)}
81-
title='Generic Secrets'
82-
pageHeading={mode === 'member'}
83-
/>
102+
<SecretsHeader mode={mode} backLabel={back.text} onBack={() => router.push(back.href)} />
84103
{failureNotice ?? <LoadingRows label='Loading secrets…' />}
85104
</SectionStack>
86105
)
@@ -216,11 +235,10 @@ function SecretRows({ back, mode, refreshFailure, variables, save, isSaving }: S
216235
return (
217236
<SectionStack>
218237
<AutofillDecoys />
219-
<DetailHeader
238+
<SecretsHeader
239+
mode={mode}
220240
backLabel={back.text}
221241
onBack={() => guard.guardBack(() => router.push(back.href))}
222-
title='Generic Secrets'
223-
pageHeading={mode === 'member'}
224242
/>
225243
{conflict && (
226244
<DraftConflictNotice onKeepMine={secrets.keepMine} onTakeLatest={resetToSaved} />

0 commit comments

Comments
 (0)