Skip to content

Commit 67dc5cd

Browse files
committed
gymnastics
1 parent eb3360e commit 67dc5cd

8 files changed

Lines changed: 64 additions & 8 deletions

File tree

packages/ui/src/components/ConfigureSSO/steps/ConfigureStep/oidc/OidcCustomConfigureSteps.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ const OIDC_STEPS: WizardStepConfig[] = [
1515

1616
export const OidcCustomConfigureSteps = (): JSX.Element => {
1717
return (
18-
// Linear, guard-less sub-flow: mount on the first step, mirroring the SAML custom inner wizard.
1918
<Wizard
2019
steps={OIDC_STEPS}
2120
initialStepId={OIDC_STEPS[0].id}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import { type JSX } from 'react';
2+
3+
import { type LocalizationKey, useLocalizations } from '@/customizables';
4+
import { SegmentedControl } from '@/elements/SegmentedControl';
5+
6+
/**
7+
* The possible modes for the OIDC identity provider configuration
8+
*
9+
* metadataUrl: Fetch IdP configuration via metadata URL
10+
* metadataFile: Upload IdP configuration via metadata file
11+
* manual: Configure manually each field, such as sign on URL, issuer, and signing certificate
12+
*/
13+
export type IdpConfigurationMode = 'discoveryUrl' | 'manual';
14+
15+
type ModeLocalizationKeys = Partial<Record<IdpConfigurationMode, LocalizationKey>>;
16+
17+
type IdentityProviderConfigurationModesProps = {
18+
modes: readonly IdpConfigurationMode[];
19+
value: IdpConfigurationMode;
20+
onChange: (mode: IdpConfigurationMode) => void;
21+
labels: {
22+
ariaLabel: LocalizationKey;
23+
} & ModeLocalizationKeys;
24+
};
25+
26+
export const IdentityProviderConfigurationModes = ({
27+
modes,
28+
value,
29+
onChange,
30+
labels,
31+
}: IdentityProviderConfigurationModesProps): JSX.Element => {
32+
const { t } = useLocalizations();
33+
34+
return (
35+
<SegmentedControl.Root
36+
aria-label={t(labels.ariaLabel)}
37+
value={value}
38+
onChange={next => onChange(next as IdpConfigurationMode)}
39+
fullWidth
40+
size='lg'
41+
>
42+
{modes.map(mode => {
43+
const label = labels[mode];
44+
if (!label) {
45+
return null;
46+
}
47+
48+
return (
49+
<SegmentedControl.Button
50+
key={mode}
51+
value={mode}
52+
text={label}
53+
/>
54+
);
55+
})}
56+
</SegmentedControl.Root>
57+
);
58+
};

packages/ui/src/components/ConfigureSSO/steps/ConfigureStep/oidc/shared/OidcCredentialsStep.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { useConfigureSSO } from '../../../../ConfigureSSOContext';
1212
import { Step } from '../../../../elements/Step';
1313
import { useWizard } from '../../../../elements/Wizard';
1414
import { InnerStepCounter } from '../../../../elements/Wizard/InnerStepCounter';
15-
import { ActiveConnectionAlert } from '../../saml/shared/ActiveConnectionAlert';
15+
import { ActiveConnectionAlert } from '../../shared/ActiveConnectionAlert';
1616

1717
export const OidcCredentialsStep = (): JSX.Element => {
1818
const card = useCardState();

packages/ui/src/components/ConfigureSSO/steps/ConfigureStep/oidc/shared/OidcEndpointsConfigurationForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { type LocalizationKey, Text } from '@/customizables';
55
import { Form } from '@/elements/Form';
66
import type { FormControlState } from '@/ui/utils/useFormControl';
77

8-
import { ActiveConnectionAlert } from '../../saml/shared/ActiveConnectionAlert';
8+
import { ActiveConnectionAlert } from '../../shared/ActiveConnectionAlert';
99

1010
type FormControl = FormControlState<FieldId>;
1111

packages/ui/src/components/ConfigureSSO/steps/ConfigureStep/oidc/shared/OidcEndpointsStep.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { InnerStepCounter } from '../../../../elements/Wizard/InnerStepCounter';
1212
import {
1313
IdentityProviderConfigurationModes,
1414
type IdpConfigurationMode,
15-
} from '../../saml/shared/IdentityProviderConfigurationModes';
15+
} from '../shared/IdentityProviderConfigurationModes';
1616
import {
1717
OidcEndpointsConfigurationForm,
1818
type OidcEndpointsConfigurationFormProps,

packages/ui/src/components/ConfigureSSO/steps/ConfigureStep/saml/shared/IdentityProviderConfigurationForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { ArrowUpTray, Close } from '@/icons';
2121
import type { FormControlState } from '@/ui/utils/useFormControl';
2222
import { handleError } from '@/utils/errorHandler';
2323

24-
import { ActiveConnectionAlert } from './ActiveConnectionAlert';
24+
import { ActiveConnectionAlert } from '../../shared/ActiveConnectionAlert';
2525
import type { IdpConfigurationMode } from './IdentityProviderConfigurationModes';
2626

2727
type CardState = ReturnType<typeof useCardState>;

packages/ui/src/components/ConfigureSSO/steps/ConfigureStep/saml/shared/IdentityProviderConfigurationModes.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ import { SegmentedControl } from '@/elements/SegmentedControl';
88
*
99
* metadataUrl: Fetch IdP configuration via metadata URL
1010
* metadataFile: Upload IdP configuration via metadata file
11-
* discoveryUrl: Fetch IdP configuration via OIDC discovery URL
1211
* manual: Configure manually each field, such as sign on URL, issuer, and signing certificate
1312
*/
14-
export type IdpConfigurationMode = 'metadataUrl' | 'metadataFile' | 'discoveryUrl' | 'manual';
13+
export type IdpConfigurationMode = 'metadataUrl' | 'metadataFile' | 'manual';
1514

1615
type ModeLocalizationKeys = Partial<Record<IdpConfigurationMode, LocalizationKey>>;
1716

packages/ui/src/components/ConfigureSSO/steps/ConfigureStep/saml/shared/ActiveConnectionAlert.tsx renamed to packages/ui/src/components/ConfigureSSO/steps/ConfigureStep/shared/ActiveConnectionAlert.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React, { type JSX } from 'react';
33
import { localizationKeys } from '@/customizables';
44
import { Alert } from '@/elements/Alert';
55

6-
import { useConfigureSSO } from '../../../../ConfigureSSOContext';
6+
import { useConfigureSSO } from '../../../ConfigureSSOContext';
77

88
export const ActiveConnectionAlert = (): JSX.Element | null => {
99
const { enterpriseConnection } = useConfigureSSO();

0 commit comments

Comments
 (0)