Skip to content

Commit 3449c2b

Browse files
committed
Update entity to include form defaults
1 parent cad6337 commit 3449c2b

File tree

5 files changed

+37
-15
lines changed

5 files changed

+37
-15
lines changed

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

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import type {
2+
OrganizationCreationAdvisorySeverity,
3+
OrganizationCreationAdvisoryType,
24
OrganizationCreationDefaultsJSON,
35
OrganizationCreationDefaultsJSONSnapshot,
46
OrganizationCreationDefaultsResource,
@@ -7,10 +9,17 @@ import type {
79
import { BaseResource } from './internal';
810

911
export class OrganizationCreationDefaults extends BaseResource implements OrganizationCreationDefaultsResource {
10-
creationAdvisory: {
11-
type: 'existing_org_with_domain';
12-
severity: 'warning';
12+
advisory: {
13+
type: OrganizationCreationAdvisoryType;
14+
severity: OrganizationCreationAdvisorySeverity;
1315
} | null = null;
16+
form: {
17+
name: string;
18+
slug: string;
19+
} = {
20+
name: '',
21+
slug: '',
22+
};
1423

1524
public constructor(data: OrganizationCreationDefaultsJSON | OrganizationCreationDefaultsJSONSnapshot | null = null) {
1625
super();
@@ -22,8 +31,13 @@ export class OrganizationCreationDefaults extends BaseResource implements Organi
2231
return this;
2332
}
2433

25-
if (data.creation_advisory) {
26-
this.creationAdvisory = this.withDefault(data.creation_advisory, this.creationAdvisory ?? null);
34+
if (data.advisory) {
35+
this.advisory = this.withDefault(data.advisory, this.advisory ?? null);
36+
}
37+
38+
if (data.form) {
39+
this.form.name = this.withDefault(data.form.name, this.form.name);
40+
this.form.slug = this.withDefault(data.form.slug, this.form.slug);
2741
}
2842

2943
return this;
@@ -41,10 +55,10 @@ export class OrganizationCreationDefaults extends BaseResource implements Organi
4155

4256
public __internal_toSnapshot(): OrganizationCreationDefaultsJSONSnapshot {
4357
return {
44-
creation_advisory: this.creationAdvisory
58+
advisory: this.advisory
4559
? {
46-
type: this.creationAdvisory.type,
47-
severity: this.creationAdvisory.severity,
60+
type: this.advisory.type,
61+
severity: this.advisory.severity,
4862
}
4963
: null,
5064
} as unknown as OrganizationCreationDefaultsJSONSnapshot;

packages/shared/src/types/organizationCreationDefaults.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,23 @@ export type OrganizationCreationAdvisoryType = 'existing_org_with_domain';
66
export type OrganizationCreationAdvisorySeverity = 'warning';
77

88
export interface OrganizationCreationDefaultsJSON extends ClerkResourceJSON {
9-
creation_advisory: {
9+
advisory: {
1010
type: OrganizationCreationAdvisoryType;
1111
severity: OrganizationCreationAdvisorySeverity;
1212
} | null;
13+
form: {
14+
name: string;
15+
slug: string;
16+
};
1317
}
1418

1519
export interface OrganizationCreationDefaultsResource extends ClerkResource {
16-
creationAdvisory: {
20+
advisory: {
1721
type: OrganizationCreationAdvisoryType;
1822
severity: OrganizationCreationAdvisorySeverity;
1923
} | null;
24+
form: {
25+
name: string;
26+
slug: string;
27+
};
2028
}

packages/ui/src/components/CreateOrganization/CreateOrganizationForm.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ type CreateOrganizationFormProps = {
3636
};
3737
};
3838

39+
// TODO -> Prefill form with organization creation defaults
3940
export const CreateOrganizationForm = withCardStateProvider((props: CreateOrganizationFormProps) => {
4041
const card = useCardState();
4142
const wizard = useWizard({ onNextStep: () => card.setError(undefined) });

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import type { CreateOrganizationParams } from '@clerk/shared/types';
44
import { useEnvironment } from '@/ui/contexts';
55
import { useSessionTasksContext, useTaskChooseOrganizationContext } from '@/ui/contexts/components/SessionTasks';
66
import { localizationKeys } from '@/ui/customizables';
7-
// or from '@/ui/elements'
87
import { useCardState } from '@/ui/elements/contexts';
98
import { Form } from '@/ui/elements/Form';
109
import { FormButtonContainer } from '@/ui/elements/FormButtons';
@@ -19,7 +18,7 @@ import { OrganizationCreationDefaultsAlert } from './OrganizationCreationDefault
1918

2019
// TODO: Replace with actual API call to OrganizationCreationDefaults.retrieve()
2120
const organizationCreationDefaults = {
22-
creationAdvisory: {
21+
advisory: {
2322
type: 'existing_org_with_domain' as const,
2423
severity: 'warning' as const,
2524
},

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
import type { OrganizationCreationAdvisoryType, OrganizationCreationDefaultsResource } from '@clerk/shared/types';
22

33
import { type LocalizationKey, localizationKeys } from '@/localization';
4-
import { Alert } from '@/ui/elements/Alert'; // or from '@/ui/elements'
4+
import { Alert } from '@/ui/elements/Alert';
55

66
export function OrganizationCreationDefaultsAlert({
77
organizationCreationDefaults,
88
}: {
99
organizationCreationDefaults: OrganizationCreationDefaultsResource;
1010
}) {
11-
if (!organizationCreationDefaults.creationAdvisory) {
11+
if (!organizationCreationDefaults.advisory) {
1212
return null;
1313
}
1414

1515
return (
1616
<Alert
1717
variant='warning'
18-
title={advisoryTypeToLocalizationKey[organizationCreationDefaults.creationAdvisory.type]}
18+
title={advisoryTypeToLocalizationKey[organizationCreationDefaults.advisory.type]}
1919
/>
2020
);
2121
}

0 commit comments

Comments
 (0)