From 56abc04e82ed4adf9f1c366620e08526d52da0f5 Mon Sep 17 00:00:00 2001 From: Peter Perlepes Date: Fri, 3 Jun 2022 11:26:38 +0300 Subject: [PATCH 1/4] fix(clerk-react): Correct annotations in isomorphicClerk for setSession --- packages/react/src/isomorphicClerk.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/react/src/isomorphicClerk.ts b/packages/react/src/isomorphicClerk.ts index 249e087bbce..c1592a6ebe0 100644 --- a/packages/react/src/isomorphicClerk.ts +++ b/packages/react/src/isomorphicClerk.ts @@ -247,6 +247,12 @@ export default class IsomorphicClerk { } } + /** + * `setActive` can be used to set the active session and/or organization. + * It will eventually replace `setSession`. + * + * @experimental + */ setActive = ({ session, organization, beforeEmit }: SetActiveParams): Promise => { if (this.clerkjs) { return this.clerkjs.setActive({ session, organization, beforeEmit }); @@ -255,7 +261,6 @@ export default class IsomorphicClerk { } }; - /** @deprecated Use `setActive` instead */ setSession = ( session: ActiveSessionResource | string | null, beforeEmit?: (session: ActiveSessionResource | null) => void | Promise, From bec968c79a34b77ca62d74985e4647d556248644 Mon Sep 17 00:00:00 2001 From: Haris Chaniotakis Date: Fri, 3 Jun 2022 14:17:17 +0300 Subject: [PATCH 2/4] fix(clerk-js): Render SignUp form input errors if missing This commit fixes a regression introduced in our recent changes for Progressive SignUp. The actual problem was that we filtered out values even with empty string value, for our sign up payload request. This issue, lead the form to not render properly any input error if any of them was required and missing --- .../clerk-js/src/ui/signUp/SignUpForm.tsx | 4 +- .../clerk-js/src/ui/signUp/SignUpStart.tsx | 2 +- .../src/ui/signUp/signUpFormHelpers.test.ts | 59 +------------------ .../src/ui/signUp/signUpFormHelpers.ts | 42 ++++++++----- 4 files changed, 30 insertions(+), 77 deletions(-) diff --git a/packages/clerk-js/src/ui/signUp/SignUpForm.tsx b/packages/clerk-js/src/ui/signUp/SignUpForm.tsx index cfea2aaecd3..f2f7b8ea2ab 100644 --- a/packages/clerk-js/src/ui/signUp/SignUpForm.tsx +++ b/packages/clerk-js/src/ui/signUp/SignUpForm.tsx @@ -85,7 +85,7 @@ export function SignUpForm({ )} - {fields.emailAddress?.show && ( + {fields.emailAddress && ( )} - {fields.phoneNumber?.show && ( + {fields.phoneNumber && ( [...acc, ...(v && formState[k as FormStateKey]?.value ? [formState[k as FormStateKey]] : [])], + (acc, [k, v]) => [...acc, ...(v && formState[k as FormStateKey] ? [formState[k as FormStateKey]] : [])], [] as Array>, ); diff --git a/packages/clerk-js/src/ui/signUp/signUpFormHelpers.test.ts b/packages/clerk-js/src/ui/signUp/signUpFormHelpers.test.ts index 70760478ad0..2ff7a27455f 100644 --- a/packages/clerk-js/src/ui/signUp/signUpFormHelpers.test.ts +++ b/packages/clerk-js/src/ui/signUp/signUpFormHelpers.test.ts @@ -42,11 +42,6 @@ describe('determineActiveFields()', () => { emailAddress: { required: true, disabled: false, - show: true, - }, - phoneNumber: { - required: true, - show: false, }, firstName: { required: true, @@ -93,14 +88,8 @@ describe('determineActiveFields()', () => { }, }, { - emailAddress: { - required: true, - disabled: false, - show: false, - }, phoneNumber: { required: true, - show: true, }, firstName: { required: true, @@ -150,11 +139,6 @@ describe('determineActiveFields()', () => { emailAddress: { required: true, // email will be toggled on initially disabled: false, - show: true, - }, - phoneNumber: { - required: true, - show: false, }, firstName: { required: true, @@ -201,15 +185,6 @@ describe('determineActiveFields()', () => { }, }, { - emailAddress: { - required: true, - disabled: false, - show: false, - }, - phoneNumber: { - required: true, - show: false, - }, firstName: { required: false, }, @@ -254,17 +229,7 @@ describe('determineActiveFields()', () => { required: false, }, }, - { - emailAddress: { - required: true, - disabled: false, - show: false, - }, - phoneNumber: { - required: true, - show: false, - }, - }, + {}, ], ]; @@ -365,11 +330,6 @@ describe('determineActiveFields()', () => { emailAddress: { required: true, disabled: false, - show: true, - }, - phoneNumber: { - required: false, - show: false, }, }, ], @@ -389,14 +349,8 @@ describe('determineActiveFields()', () => { }, }, { - emailAddress: { - required: false, - disabled: false, - show: false, - }, phoneNumber: { required: true, - show: true, }, }, ], @@ -419,11 +373,9 @@ describe('determineActiveFields()', () => { emailAddress: { required: true, disabled: false, - show: true, }, phoneNumber: { required: true, - show: true, }, }, ], @@ -446,11 +398,6 @@ describe('determineActiveFields()', () => { emailAddress: { required: false, // email will be toggled on initially disabled: false, - show: true, - }, - phoneNumber: { - required: false, - show: false, }, }, ], @@ -473,11 +420,9 @@ describe('determineActiveFields()', () => { emailAddress: { required: true, disabled: false, - show: true, }, phoneNumber: { required: false, - show: true, }, }, ], @@ -500,11 +445,9 @@ describe('determineActiveFields()', () => { emailAddress: { required: false, disabled: false, - show: true, }, phoneNumber: { required: true, - show: true, }, }, ], diff --git a/packages/clerk-js/src/ui/signUp/signUpFormHelpers.ts b/packages/clerk-js/src/ui/signUp/signUpFormHelpers.ts index 1fdbf99e31d..57601010986 100644 --- a/packages/clerk-js/src/ui/signUp/signUpFormHelpers.ts +++ b/packages/clerk-js/src/ui/signUp/signUpFormHelpers.ts @@ -21,10 +21,6 @@ export type Field = { * Denotes if the corresponding input is required to be filled */ required: boolean; - /** - * Denotes if we have to render the corresponding input - */ - show?: boolean; }; export type Fields = { @@ -152,21 +148,25 @@ function getEmailAddressField({ hasEmail, activeCommIdentifierType, isProgressiveSignUp, -}: FieldDeterminationProps): Field { +}: FieldDeterminationProps): Field | undefined { if (isProgressiveSignUp) { // If there is no ticket, or there is a ticket along with an email, and email address is enabled, // we have to show it in the SignUp form - let show = (!hasTicket || (hasTicket && hasEmail)) && attributes.email_address.enabled; + const show = (!hasTicket || (hasTicket && hasEmail)) && attributes.email_address.enabled; + + if (!show) { + return; + } + // If we are in the case of Email OR Phone, determine if the initial input has to be the email address // based on the active identifier type. - if (emailOrPhone(attributes, isProgressiveSignUp)) { - show = show && activeCommIdentifierType === 'emailAddress'; + if (emailOrPhone(attributes, isProgressiveSignUp) && activeCommIdentifierType !== 'emailAddress') { + return; } return { required: attributes.email_address.required, disabled: !!hasTicket && !!hasEmail, - show, }; } @@ -176,10 +176,13 @@ function getEmailAddressField({ attributes.email_address.used_for_first_factor && activeCommIdentifierType == 'emailAddress'; + if (!show) { + return; + } + return { required: true, // as far as the FE is concerned the email address is required, if shown disabled: !!hasTicket && !!hasEmail, - show, }; } @@ -188,19 +191,23 @@ function getPhoneNumberField({ hasTicket, activeCommIdentifierType, isProgressiveSignUp, -}: FieldDeterminationProps): Field { +}: FieldDeterminationProps): Field | undefined { if (isProgressiveSignUp) { // If there is no ticket and phone number is enabled, we have to show it in the SignUp form - let show = !hasTicket && attributes.phone_number.enabled; + const show = !hasTicket && attributes.phone_number.enabled; + + if (!show) { + return; + } + // If we are in the case of Email OR Phone, determine if the initial input has to be the phone number // based on the active identifier type. - if (emailOrPhone(attributes, isProgressiveSignUp)) { - show = show && activeCommIdentifierType === 'phoneNumber'; + if (emailOrPhone(attributes, isProgressiveSignUp) && activeCommIdentifierType !== 'phoneNumber') { + return; } return { required: attributes.phone_number.required, - show, }; } @@ -210,9 +217,12 @@ function getPhoneNumberField({ attributes.phone_number.used_for_first_factor && activeCommIdentifierType == 'phoneNumber'; + if (!show) { + return; + } + return { required: true, // as far as the FE is concerned the phone number is required, if shown - show, }; } From f7bff5c586a33e2b45258912924ab27b4ecf6da9 Mon Sep 17 00:00:00 2001 From: Alexandros Ntousias Date: Thu, 2 Jun 2022 18:05:01 +0300 Subject: [PATCH 3/4] fix(clerk-js): If organization is `null`, set the active org as null This commit fixes `setActive` to set the active organization as `null` if the organization parameter that was passed in `setActive` is `null`. https://www.notion.so/clerkdev/Add-ClerkJS-method-to-set-the-active-organization-2f551fafdbd14834a7b5519e87c6f254 --- packages/clerk-js/src/core/clerk.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/clerk-js/src/core/clerk.ts b/packages/clerk-js/src/core/clerk.ts index bb74692e98a..83c02e1a075 100644 --- a/packages/clerk-js/src/core/clerk.ts +++ b/packages/clerk-js/src/core/clerk.ts @@ -331,9 +331,12 @@ export default class Clerk implements ClerkInterface { } this.session = session; - this.organization = (this.session?.user.organizationMemberships || []) - .map(om => om.organization) - .find(org => org.id === this.session?.lastActiveOrganizationId); + this.organization = + organization === null + ? null + : (this.session?.user.organizationMemberships || []) + .map(om => om.organization) + .find(org => org.id === this.session?.lastActiveOrganizationId); this.user = this.session ? this.session.user : null; this.#emit(); From 030d55c1ad451a0c99a014b68b5a2aa26020ea05 Mon Sep 17 00:00:00 2001 From: Sokratis Vidros Date: Fri, 3 Jun 2022 16:12:08 +0300 Subject: [PATCH 4/4] chore(release): Publish - @clerk/clerk-js@3.12.0-staging.9 - @clerk/clerk-expo@0.9.25-staging.4 - @clerk/nextjs@3.6.6-staging.4 - @clerk/clerk-react@3.3.0-staging.4 - @clerk/remix@0.5.1-staging.4 --- package-lock.json | 22 +++++++++++----------- packages/clerk-js/CHANGELOG.md | 7 +++++++ packages/clerk-js/package.json | 2 +- packages/expo/CHANGELOG.md | 4 ++++ packages/expo/package.json | 4 ++-- packages/nextjs/CHANGELOG.md | 4 ++++ packages/nextjs/package.json | 4 ++-- packages/react/CHANGELOG.md | 6 ++++++ packages/react/package.json | 2 +- packages/react/src/info.ts | 2 +- packages/remix/CHANGELOG.md | 4 ++++ packages/remix/package.json | 4 ++-- 12 files changed, 45 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4f6ebec140e..470d6d14493 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35191,7 +35191,7 @@ }, "packages/clerk-js": { "name": "@clerk/clerk-js", - "version": "3.12.0-staging.8", + "version": "3.12.0-staging.9", "license": "MIT", "dependencies": { "@clerk/types": "^2.15.0-staging.3", @@ -35362,11 +35362,11 @@ }, "packages/expo": { "name": "@clerk/clerk-expo", - "version": "0.9.25-staging.3", + "version": "0.9.25-staging.4", "license": "MIT", "dependencies": { "@clerk/clerk-js": "^3.12.0", - "@clerk/clerk-react": "^3.3.0-staging.3", + "@clerk/clerk-react": "^3.3.0-staging.4", "base-64": "^1.0.0" }, "devDependencies": { @@ -35565,10 +35565,10 @@ }, "packages/nextjs": { "name": "@clerk/nextjs", - "version": "3.6.6-staging.3", + "version": "3.6.6-staging.4", "license": "MIT", "dependencies": { - "@clerk/clerk-react": "^3.3.0-staging.3", + "@clerk/clerk-react": "^3.3.0-staging.4", "@clerk/clerk-sdk-node": "^3.6.1-staging.3", "@clerk/edge": "^1.5.2-staging.3", "@clerk/types": "^2.15.0-staging.3", @@ -35601,7 +35601,7 @@ }, "packages/react": { "name": "@clerk/clerk-react", - "version": "3.3.0-staging.3", + "version": "3.3.0-staging.4", "license": "MIT", "dependencies": { "@clerk/types": "^2.15.0-staging.3", @@ -35641,10 +35641,10 @@ }, "packages/remix": { "name": "@clerk/remix", - "version": "0.5.1-staging.3", + "version": "0.5.1-staging.4", "license": "MIT", "dependencies": { - "@clerk/clerk-react": "^3.3.0-staging.3", + "@clerk/clerk-react": "^3.3.0-staging.4", "@clerk/clerk-sdk-node": "^3.6.1-staging.3", "@clerk/types": "^2.15.0-staging.3", "cookie": "^0.5.0", @@ -37097,7 +37097,7 @@ "version": "file:packages/expo", "requires": { "@clerk/clerk-js": "^3.12.0", - "@clerk/clerk-react": "^3.3.0-staging.3", + "@clerk/clerk-react": "^3.3.0-staging.4", "@clerk/types": "^2.15.0-staging.3", "@types/jest": "^27.4.0", "@types/node": "^16.11.9", @@ -37376,7 +37376,7 @@ "@clerk/nextjs": { "version": "file:packages/nextjs", "requires": { - "@clerk/clerk-react": "^3.3.0-staging.3", + "@clerk/clerk-react": "^3.3.0-staging.4", "@clerk/clerk-sdk-node": "^3.6.1-staging.3", "@clerk/edge": "^1.5.2-staging.3", "@clerk/types": "^2.15.0-staging.3", @@ -37404,7 +37404,7 @@ "@clerk/remix": { "version": "file:packages/remix", "requires": { - "@clerk/clerk-react": "^3.3.0-staging.3", + "@clerk/clerk-react": "^3.3.0-staging.4", "@clerk/clerk-sdk-node": "^3.6.1-staging.3", "@clerk/types": "^2.15.0-staging.3", "@types/cookie": "^0.5.0", diff --git a/packages/clerk-js/CHANGELOG.md b/packages/clerk-js/CHANGELOG.md index 044091152da..10936ef60bc 100644 --- a/packages/clerk-js/CHANGELOG.md +++ b/packages/clerk-js/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.12.0-staging.9](https://github.com/clerkinc/javascript/compare/@clerk/clerk-js@3.12.0-staging.8...@clerk/clerk-js@3.12.0-staging.9) (2022-06-03) + +### Bug Fixes + +- **clerk-js:** If organization is `null`, set the active org as null ([f7bff5c](https://github.com/clerkinc/javascript/commit/f7bff5c586a33e2b45258912924ab27b4ecf6da9)) +- **clerk-js:** Render SignUp form input errors if missing ([bec968c](https://github.com/clerkinc/javascript/commit/bec968c79a34b77ca62d74985e4647d556248644)) + ## [3.12.0-staging.8](https://github.com/clerkinc/javascript/compare/@clerk/clerk-js@3.12.0-staging.7...@clerk/clerk-js@3.12.0-staging.8) (2022-06-03) ### Bug Fixes diff --git a/packages/clerk-js/package.json b/packages/clerk-js/package.json index eb0adef7e3b..8b809ee2ea2 100644 --- a/packages/clerk-js/package.json +++ b/packages/clerk-js/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-js", - "version": "3.12.0-staging.8", + "version": "3.12.0-staging.9", "license": "MIT", "description": "Clerk.dev JS library", "keywords": [ diff --git a/packages/expo/CHANGELOG.md b/packages/expo/CHANGELOG.md index d1e343a94ab..86fa4e2031e 100644 --- a/packages/expo/CHANGELOG.md +++ b/packages/expo/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.9.25-staging.4](https://github.com/clerkinc/javascript/compare/@clerk/clerk-expo@0.9.25-staging.3...@clerk/clerk-expo@0.9.25-staging.4) (2022-06-03) + +**Note:** Version bump only for package @clerk/clerk-expo + ### [0.9.25-staging.3](https://github.com/clerkinc/javascript/compare/@clerk/clerk-expo@0.9.25-staging.2...@clerk/clerk-expo@0.9.25-staging.3) (2022-06-03) **Note:** Version bump only for package @clerk/clerk-expo diff --git a/packages/expo/package.json b/packages/expo/package.json index 198939a4b94..3b3c9be7644 100644 --- a/packages/expo/package.json +++ b/packages/expo/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-expo", - "version": "0.9.25-staging.3", + "version": "0.9.25-staging.4", "license": "MIT", "description": "Clerk.dev React Native/Expo library", "keywords": [ @@ -27,7 +27,7 @@ }, "dependencies": { "@clerk/clerk-js": "^3.12.0", - "@clerk/clerk-react": "^3.3.0-staging.3", + "@clerk/clerk-react": "^3.3.0-staging.4", "base-64": "^1.0.0" }, "devDependencies": { diff --git a/packages/nextjs/CHANGELOG.md b/packages/nextjs/CHANGELOG.md index 50ec2b67ff1..28ca561b409 100644 --- a/packages/nextjs/CHANGELOG.md +++ b/packages/nextjs/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [3.6.6-staging.4](https://github.com/clerkinc/javascript/compare/@clerk/nextjs@3.6.6-staging.3...@clerk/nextjs@3.6.6-staging.4) (2022-06-03) + +**Note:** Version bump only for package @clerk/nextjs + ### [3.6.6-staging.3](https://github.com/clerkinc/javascript/compare/@clerk/nextjs@3.6.6-staging.2...@clerk/nextjs@3.6.6-staging.3) (2022-06-03) **Note:** Version bump only for package @clerk/nextjs diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 4842ef910d0..6238d02b8d6 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/nextjs", - "version": "3.6.6-staging.3", + "version": "3.6.6-staging.4", "license": "MIT", "description": "Clerk.dev SDK for NextJS", "keywords": [ @@ -32,7 +32,7 @@ "dev": "tsc -p tsconfig.build.json --watch" }, "dependencies": { - "@clerk/clerk-react": "^3.3.0-staging.3", + "@clerk/clerk-react": "^3.3.0-staging.4", "@clerk/clerk-sdk-node": "^3.6.1-staging.3", "@clerk/edge": "^1.5.2-staging.3", "@clerk/types": "^2.15.0-staging.3", diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 270ad3662db..34188ca7170 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.3.0-staging.4](https://github.com/clerkinc/javascript/compare/@clerk/clerk-react@3.3.0-staging.3...@clerk/clerk-react@3.3.0-staging.4) (2022-06-03) + +### Bug Fixes + +- **clerk-react:** Correct annotations in isomorphicClerk for setSession ([56abc04](https://github.com/clerkinc/javascript/commit/56abc04e82ed4adf9f1c366620e08526d52da0f5)) + ## [3.3.0-staging.3](https://github.com/clerkinc/javascript/compare/@clerk/clerk-react@3.3.0-staging.2...@clerk/clerk-react@3.3.0-staging.3) (2022-06-03) **Note:** Version bump only for package @clerk/clerk-react diff --git a/packages/react/package.json b/packages/react/package.json index e80d7ec3f0b..001e5c2c0ea 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/clerk-react", - "version": "3.3.0-staging.3", + "version": "3.3.0-staging.4", "license": "MIT", "description": "Clerk.dev React library", "keywords": [ diff --git a/packages/react/src/info.ts b/packages/react/src/info.ts index 1069617c7f8..36a4c1eaad8 100644 --- a/packages/react/src/info.ts +++ b/packages/react/src/info.ts @@ -1,3 +1,3 @@ /** DO NOT EDIT: This file is automatically generated by ../scripts/info.js */ -export const LIB_VERSION = '3.3.0-staging.3'; +export const LIB_VERSION = '3.3.0-staging.4'; export const LIB_NAME = '@clerk/clerk-react'; diff --git a/packages/remix/CHANGELOG.md b/packages/remix/CHANGELOG.md index 111dcf44b90..ddf40b8b7bc 100644 --- a/packages/remix/CHANGELOG.md +++ b/packages/remix/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +### [0.5.1-staging.4](https://github.com/clerkinc/javascript/compare/@clerk/remix@0.5.1-staging.3...@clerk/remix@0.5.1-staging.4) (2022-06-03) + +**Note:** Version bump only for package @clerk/remix + ### [0.5.1-staging.3](https://github.com/clerkinc/javascript/compare/@clerk/remix@0.5.1-staging.2...@clerk/remix@0.5.1-staging.3) (2022-06-03) **Note:** Version bump only for package @clerk/remix diff --git a/packages/remix/package.json b/packages/remix/package.json index a355c4a4de5..b4eff8c9a97 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -1,6 +1,6 @@ { "name": "@clerk/remix", - "version": "0.5.1-staging.3", + "version": "0.5.1-staging.4", "license": "MIT", "description": "Clerk.dev SDK for Remix", "keywords": [ @@ -32,7 +32,7 @@ "dev": "tsc -p tsconfig.build.json --watch" }, "dependencies": { - "@clerk/clerk-react": "^3.3.0-staging.3", + "@clerk/clerk-react": "^3.3.0-staging.4", "@clerk/clerk-sdk-node": "^3.6.1-staging.3", "@clerk/types": "^2.15.0-staging.3", "cookie": "^0.5.0",