Skip to content

Commit 33bc7ba

Browse files
committed
Include meta into advisory message
1 parent 41e096f commit 33bc7ba

File tree

6 files changed

+29
-15
lines changed

6 files changed

+29
-15
lines changed

packages/clerk-js/src/core/resources/OrganizationCreationDefaults.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import { BaseResource } from './internal';
1010

1111
export class OrganizationCreationDefaults extends BaseResource implements OrganizationCreationDefaultsResource {
1212
advisory: {
13-
type: OrganizationCreationAdvisoryType;
13+
code: OrganizationCreationAdvisoryType;
1414
severity: OrganizationCreationAdvisorySeverity;
15+
meta: Record<string, string>;
1516
} | null = null;
1617
form: {
1718
name: string;
@@ -60,7 +61,8 @@ export class OrganizationCreationDefaults extends BaseResource implements Organi
6061
return {
6162
advisory: this.advisory
6263
? {
63-
type: this.advisory.type,
64+
code: this.advisory.code,
65+
meta: this.advisory.meta,
6466
severity: this.advisory.severity,
6567
}
6668
: null,

packages/localizations/src/en-US.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -879,7 +879,7 @@ export const enUS: LocalizationResource = {
879879
},
880880
alerts: {
881881
existingOrgWithDomain:
882-
'An organization already exists for the detected company name and email domain. Join by invitation.',
882+
'An organization already exists for the detected company name and {{email}}. Join by invitation.',
883883
},
884884
},
885885
taskResetPassword: {

packages/shared/src/types/localization.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1308,7 +1308,7 @@ export type __internal_LocalizationResource = {
13081308
subtitle: LocalizationValue;
13091309
};
13101310
alerts: {
1311-
existingOrgWithDomain: LocalizationValue;
1311+
existingOrgWithDomain: LocalizationValue<'email'>;
13121312
};
13131313
};
13141314
taskResetPassword: {

packages/shared/src/types/organizationCreationDefaults.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ export type OrganizationCreationAdvisorySeverity = 'warning';
77

88
export interface OrganizationCreationDefaultsJSON extends ClerkResourceJSON {
99
advisory: {
10-
type: OrganizationCreationAdvisoryType;
10+
code: OrganizationCreationAdvisoryType;
1111
severity: OrganizationCreationAdvisorySeverity;
12+
meta: Record<string, string>;
1213
} | null;
1314
form: {
1415
name: string;
@@ -19,8 +20,9 @@ export interface OrganizationCreationDefaultsJSON extends ClerkResourceJSON {
1920

2021
export interface OrganizationCreationDefaultsResource extends ClerkResource {
2122
advisory: {
22-
type: OrganizationCreationAdvisoryType;
23+
code: OrganizationCreationAdvisoryType;
2324
severity: OrganizationCreationAdvisorySeverity;
25+
meta: Record<string, string>;
2426
} | null;
2527
form: {
2628
name: string;
Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,40 @@
1-
import type { OrganizationCreationAdvisoryType, OrganizationCreationDefaultsResource } from '@clerk/shared/types';
1+
import type { OrganizationCreationDefaultsResource } from '@clerk/shared/types';
22

33
import { Alert, Text } from '@/customizables';
4-
import { type LocalizationKey, localizationKeys } from '@/localization';
4+
import { localizationKeys } from '@/localization';
55

66
export function OrganizationCreationDefaultsAlert({
77
organizationCreationDefaults,
88
}: {
99
organizationCreationDefaults?: OrganizationCreationDefaultsResource;
1010
}) {
11-
if (!organizationCreationDefaults?.advisory) {
11+
const localizationKey = advisoryToLocalizationKey(organizationCreationDefaults?.advisory);
12+
if (!localizationKey) {
1213
return null;
1314
}
1415

1516
return (
1617
<Alert colorScheme='warning'>
1718
<Text
1819
colorScheme='warning'
19-
localizationKey={advisoryTypeToLocalizationKey[organizationCreationDefaults.advisory.type]}
20+
localizationKey={localizationKey}
2021
variant='caption'
2122
/>
2223
</Alert>
2324
);
2425
}
2526

26-
// TODO -> Update with latest advisory where meta is returned
27-
// TODO -> Include email domain in message, eg: {{ meta }}
28-
const advisoryTypeToLocalizationKey: Record<OrganizationCreationAdvisoryType, LocalizationKey> = {
29-
existing_org_with_domain: localizationKeys('taskChooseOrganization.alerts.existingOrgWithDomain'),
27+
const advisoryToLocalizationKey = (advisory?: OrganizationCreationDefaultsResource['advisory']) => {
28+
if (!advisory) {
29+
return null;
30+
}
31+
32+
switch (advisory.code) {
33+
case 'existing_org_with_domain':
34+
return localizationKeys('taskChooseOrganization.alerts.existingOrgWithDomain', {
35+
email: advisory.meta.email,
36+
});
37+
default:
38+
return null;
39+
}
3040
};

packages/ui/src/components/SessionTasks/tasks/TaskChooseOrganization/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ const TaskChooseOrganizationCardFooter = () => {
113113

114114
type TaskChooseOrganizationFlowsProps = {
115115
initialFlow: 'create' | 'choose';
116-
organizationCreationDefaults?: OrganizationCreationDefaultsResource;
116+
organizationCreationDefaults?: OrganizationCreationDefaultsResource | null;
117117
};
118118

119119
const TaskChooseOrganizationFlows = withCardStateProvider((props: TaskChooseOrganizationFlowsProps) => {

0 commit comments

Comments
 (0)