@clerk/upgrade 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +10 -2
- package/dist/cli.js +15 -6
- package/dist/img/alternativemethods-backlink.png +0 -0
- package/dist/img/button-to-organizationlistcreateorganizationactionbutton.png +0 -0
- package/dist/img/connected-accounts-dropdown.png +0 -0
- package/dist/img/mfa-dropdown.png +0 -0
- package/dist/img/organizationprofile-settings.png +0 -0
- package/dist/img/remove-identitypreview-avatar.png +0 -0
- package/dist/img/remove-socialbuttonsblockbuttonarrow.png +0 -0
- package/dist/img/userbuttonpopoveractionbuttontext-removed.png +0 -0
- package/dist/img/userprofile-security.png +0 -0
- package/dist/scan.js +19 -7
- package/dist/util/expandable-list.js +3 -3
- package/dist/util/generate-export-change.js +10 -0
- package/dist/util/guess-framework.js +8 -3
- package/dist/util/load-change.js +2 -1
- package/dist/versions/v5/backend/api-url-value-changed.md +7 -0
- package/dist/versions/v5/backend/authenticaterequest-params-change.md +12 -0
- package/dist/versions/v5/backend/buildrequesturl-removed.md +7 -0
- package/dist/versions/v5/backend/clerk-import.md +2 -2
- package/dist/versions/v5/backend/client-unstableoptions-removed.md +15 -0
- package/dist/versions/v5/backend/clockskewinseconds.md +10 -2
- package/dist/versions/v5/backend/constants-import-path-move.md +13 -0
- package/dist/versions/v5/backend/createauthenticaterequest-import-path-move.md +13 -0
- package/dist/versions/v5/backend/createclerkclient-apikey.md +8 -11
- package/dist/versions/v5/backend/createclerkclient-frontendapi.md +7 -10
- package/dist/versions/v5/backend/createemail-removed.md +7 -0
- package/dist/versions/v5/backend/createisomorphicrequest-import-path-move.md +13 -0
- package/dist/versions/v5/backend/createisomorphicrequest-removed.md +13 -0
- package/dist/versions/v5/backend/decodeJwt-import-path-move.md +13 -0
- package/dist/versions/v5/backend/externalaccount-picture.md +6 -0
- package/dist/versions/v5/backend/externalaccountjson-avatarurl.md +6 -0
- package/dist/versions/v5/backend/getorganizationinvitationlist-return-signature.md +14 -0
- package/dist/versions/v5/backend/getorganizationlist-return-signature.md +14 -0
- package/dist/versions/v5/backend/getorganizationmembershiplist-return-signature.md +14 -0
- package/dist/versions/v5/backend/getpendingorganizationinvitationlist.md +5 -5
- package/dist/versions/v5/backend/httpoptions-removed.md +15 -0
- package/dist/versions/v5/backend/membershiprole.md +21 -0
- package/dist/versions/v5/backend/organization-logourl.md +6 -0
- package/dist/versions/v5/backend/organizationjson-logourl.md +6 -0
- package/dist/versions/v5/backend/organizationmembershippublicuserdata-profileimageurl.md +6 -0
- package/dist/versions/v5/backend/organizationmembershippublicuserdatajson-profileimageurl.md +6 -0
- package/dist/versions/v5/backend/pkgversion.md +15 -0
- package/dist/versions/v5/backend/redirect-import-path-move.md +13 -0
- package/dist/versions/v5/backend/return-signature-change.md +14 -0
- package/dist/versions/v5/backend/signjwt-import-path-move +0 -0
- package/dist/versions/v5/backend/signjwt-import-path-move.md +13 -0
- package/dist/versions/v5/backend/signjwterror-import-move.md +13 -0
- package/dist/versions/v5/backend/tokenverificationerror-import-move.md +13 -0
- package/dist/versions/v5/backend/tokenverificationerroraction-import-move.md +13 -0
- package/dist/versions/v5/backend/tokenverificationerrorcode-import-move.md +13 -0
- package/dist/versions/v5/backend/tokenverificationerrorreason-import-move.md +13 -0
- package/dist/versions/v5/backend/user-profileimageurl.md +6 -0
- package/dist/versions/v5/backend/userjson-profileimageurl.md +6 -0
- package/dist/versions/v5/backend/verifyjwt-import-path-move.md +13 -0
- package/dist/versions/v5/common/aftersigninouturl-behavior-change.md +7 -0
- package/dist/versions/v5/common/aftersigninurl-behavior-change +7 -0
- package/dist/versions/v5/common/aftersigninurl-behavior-change-2.md +7 -0
- package/dist/versions/v5/common/aftersigninurl-behavior-change.md +7 -0
- package/dist/versions/v5/common/aftersignouturl-behavior-change.md +7 -0
- package/dist/versions/v5/common/aftersignupurl-behavior-change.md +7 -0
- package/dist/versions/v5/common/afterswitchorganizationurl.md +2 -1
- package/dist/versions/v5/common/alternativemethods-backlink.md +18 -0
- package/dist/versions/v5/common/api-key-to-secret-key.md +1 -1
- package/dist/versions/v5/common/button-to-organizationlistcreateorganizationactionbutton.md +11 -0
- package/dist/versions/v5/common/card-changes.md +14 -0
- package/dist/versions/v5/common/changed-localization-keys.md +179 -0
- package/dist/versions/v5/common/clerkprovider-frontendapi-2.md +7 -0
- package/dist/versions/v5/common/clerkprovideroptionswrapper-dropped.md +6 -0
- package/dist/versions/v5/common/connected-accounts-dropdown.md +15 -0
- package/dist/versions/v5/common/emaillinkerrorcode-import-change.md +13 -0
- package/dist/versions/v5/common/external-account-avatarurl.md +7 -0
- package/dist/versions/v5/common/frontend-api-to-publishable-key.md +1 -1
- package/dist/versions/v5/common/isclerkapiresponserror-import-change.md +13 -0
- package/dist/versions/v5/common/isemaillinkerror-import-change.md +13 -0
- package/dist/versions/v5/common/isknownerror-import-change.md +13 -0
- package/dist/versions/v5/common/ismetamaskerror-import-change.md +13 -0
- package/dist/versions/v5/common/mfa-dropdown.md +11 -0
- package/dist/versions/v5/common/multi-session-ui-changes.md +0 -0
- package/dist/versions/v5/common/multisessionappsupport-import-change.md +12 -0
- package/dist/versions/v5/common/new-localization-keys.md +133 -0
- package/dist/versions/v5/common/organization-getdomains-arguments-change.md +20 -0
- package/dist/versions/v5/common/organization-getmembershiprequests-arguments-changed.md +20 -0
- package/dist/versions/v5/common/organization-getroles-arguments-changed.md +20 -0
- package/dist/versions/v5/common/organization-getroles-return-type.md +0 -0
- package/dist/versions/v5/common/organizationprofile-general.md +0 -0
- package/dist/versions/v5/common/organizationprofile-settings.md +12 -0
- package/dist/versions/v5/common/organizationswitcherpopoveractionbuttontext-removed.md +14 -0
- package/dist/versions/v5/common/remove-identitypreview-avatar.md +12 -0
- package/dist/versions/v5/common/remove-socialbuttonsblockbuttonarrow.md +10 -0
- package/dist/versions/v5/common/removed-localization-keys.md +166 -0
- package/dist/versions/v5/common/signoutcallback-to-redirecturl.md +22 -0
- package/dist/versions/v5/common/useorganization-invitationlist.md +1 -1
- package/dist/versions/v5/common/useorganization-membershiplist.md +2 -1
- package/dist/versions/v5/common/userbuttonpopoveractionbuttontext-removed.md +14 -0
- package/dist/versions/v5/common/userbuttonpopoveractionbuttontext.md +7 -0
- package/dist/versions/v5/common/userbuttontrigger-userbuttonbox-invert.md +12 -0
- package/dist/versions/v5/common/userprofile-prop.md +2 -1
- package/dist/versions/v5/common/userprofile-security.md +8 -0
- package/dist/versions/v5/common/withclerk-hof-removed.md +29 -0
- package/dist/versions/v5/common/withclerk-removed.md +16 -0
- package/dist/versions/v5/common/withsession-hof-removed.md +29 -0
- package/dist/versions/v5/common/withsession-removed.md +16 -0
- package/dist/versions/v5/common/withuser-hof-removed.md +29 -0
- package/dist/versions/v5/common/withuser-removed-2.md +18 -0
- package/dist/versions/v5/common/withuser-removed.md +16 -0
- package/dist/versions/v5/expo/apikey-to-publishable-key.md +1 -1
- package/dist/versions/v5/gatsby/apikey-to-publishable-key.md +1 -1
- package/dist/versions/v5/index.js +11 -22
- package/dist/versions/v5/js/aftersigninout-behavior-change.md +7 -0
- package/dist/versions/v5/js/aftersigninouturl-behavior-change.md +7 -0
- package/dist/versions/v5/js/aftersigninurl-behavior-change.md +0 -0
- package/dist/versions/v5/js/clerk-isready-removed.md +6 -0
- package/dist/versions/v5/js/organization-getdomains-arguments-change.md +20 -0
- package/dist/versions/v5/js/organization-getinvitations-arguments-changed.md +20 -0
- package/dist/versions/v5/js/organization-getmembershiprequests-arguments-changed.md +20 -0
- package/dist/versions/v5/js/organization-getmemberships-arguments-changed.md +20 -0
- package/dist/versions/v5/js/organization-getroles-arguments-changed.md +20 -0
- package/dist/versions/v5/js/user-getorganizationinvitations-arguments-chanaged.md +20 -0
- package/dist/versions/v5/js/user-getorganizationmemberships-arguments-chanaged +0 -0
- package/dist/versions/v5/js/user-getorganizationmemberships-arguments-chanaged.md +20 -0
- package/dist/versions/v5/js/user-getorganizationsuggestions-arguments-chanaged.md +20 -0
- package/dist/versions/v5/next/api-url-value-change.md +1 -0
- package/dist/versions/v5/next/auth-import-change.md +13 -0
- package/dist/versions/v5/next/auth-middleware-deprecated.md +43 -4
- package/dist/versions/v5/next/authmiddleware-import-change.md +13 -0
- package/dist/versions/v5/next/buildclerkprops-import-change.md +13 -0
- package/dist/versions/v5/next/clerk-import-change.md +12 -0
- package/dist/versions/v5/next/clerk-js-version-next-public.md +1 -1
- package/dist/versions/v5/next/constants-import-change.md +13 -0
- package/dist/versions/v5/next/createauthenticaterequest-import-change.md +13 -0
- package/dist/versions/v5/next/createisomorphicrequest-import-change.md +13 -0
- package/dist/versions/v5/next/currentuser-import-change.md +13 -0
- package/dist/versions/v5/next/decodejwt-import-change.md +13 -0
- package/dist/versions/v5/next/emaillinkerrorcode-import-change.md +13 -0
- package/dist/versions/v5/next/import-sign-up-url.md +1 -0
- package/dist/versions/v5/next/isclerkapiresponserror-import-change.md +13 -0
- package/dist/versions/v5/next/isemaillinkerror-import-change.md +13 -0
- package/dist/versions/v5/next/isknownerror-import-change.md +13 -0
- package/dist/versions/v5/next/ismetamaskerror-import-change.md +13 -0
- package/dist/versions/v5/next/multisessionappsupport-import-change.md +13 -0
- package/dist/versions/v5/next/next-public-clerk-js-url.md +6 -0
- package/dist/versions/v5/next/redirect-import-change.md +13 -0
- package/dist/versions/v5/next/signjwt-import-change.md +13 -0
- package/dist/versions/v5/next/verify +0 -0
- package/dist/versions/v5/next/verifyjwt-import-change.md +13 -0
- package/dist/versions/v5/next/verifytoken-import-change.md +13 -0
- package/dist/versions/v5/next/withclerk-removed.md +15 -0
- package/dist/versions/v5/next/withsession-removed.md +15 -0
- package/dist/versions/v5/next/withuser-removed.md +0 -0
- package/dist/versions/v5/node/legacyauthobject-removed.md +26 -0
- package/dist/versions/v5/react/router-navigate.md +18 -0
- package/dist/versions/v5/react/signoutcallback-to- +0 -0
- package/dist/versions/v5/react/signoutcallback-to-redirecturl.md +22 -0
- package/dist/versions/v5/remix/clerkerrorboundary-removed.md +22 -0
- package/dist/versions/v5/remix/clerkprovider-frontendapi.md +0 -0
- package/dist/versions/v5/remix/createclerkclient-apikey.md +14 -0
- package/dist/versions/v5/remix/getauth-apikey.md +16 -0
- package/dist/versions/v5/remix/rootauthloader-apikey.md +14 -0
- package/dist/versions/v5/remix/rootauthloader-frontendapi.md +14 -0
- package/dist/versions/v5/shared/buildrequesturl.md +6 -8
- package/dist/versions/v5/shared/getrequesturl.md +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'New localization keys added'
|
|
3
|
+
matcher: "<ClerkProvider[\\s\\S]*?localization=[\\s\\S]*?>"
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
warning: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
As part of the redesign of Clerk's components, a number of new localization keys have been added and can be seen along with their default english values in the code block below. If you do not supply translated values for these keys in your custom localization, they will fall back to the default english values specified below.
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
const newValues = {
|
|
12
|
+
formFieldLabel__organizationName: 'Name',
|
|
13
|
+
formFieldLabel__organizationSlug: 'Slug',
|
|
14
|
+
formFieldInputPlaceholder__emailAddresses: 'example@email.com, example2@email.com',
|
|
15
|
+
formFieldInputPlaceholder__organizationSlug: 'my-org',
|
|
16
|
+
signUp: {
|
|
17
|
+
start: {
|
|
18
|
+
subtitle: 'Welcome! Please fill in the details to get started.',
|
|
19
|
+
actionText: 'Already have an account?',
|
|
20
|
+
},
|
|
21
|
+
emailCode: {
|
|
22
|
+
subtitle: 'Enter the verification code sent to your email',
|
|
23
|
+
},
|
|
24
|
+
phoneCode: {
|
|
25
|
+
subtitle: 'Enter the verification code sent to your phone',
|
|
26
|
+
},
|
|
27
|
+
continue: {
|
|
28
|
+
subtitle: 'Please fill in the remaining details to continue.',
|
|
29
|
+
actionText: 'Already have an account?',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
signIn: {
|
|
33
|
+
start: {
|
|
34
|
+
title: 'Sign in to {{applicationName}}',
|
|
35
|
+
subtitle: 'Welcome back! Please sign in to continue',
|
|
36
|
+
actionText: 'Don’t have an account?',
|
|
37
|
+
},
|
|
38
|
+
password: {
|
|
39
|
+
subtitle: 'Enter the password associated with your account',
|
|
40
|
+
},
|
|
41
|
+
forgotPasswordAlternativeMethods: {
|
|
42
|
+
label__alternativeMethods: 'Or, sign in with another method',
|
|
43
|
+
},
|
|
44
|
+
resetPassword: {
|
|
45
|
+
title: 'Set new password',
|
|
46
|
+
},
|
|
47
|
+
phoneCodeMfa: {
|
|
48
|
+
subtitle: 'To continue, please enter the verification code sent to your phone',
|
|
49
|
+
},
|
|
50
|
+
totpMfa: {
|
|
51
|
+
subtitle: 'To continue, please enter the verification code generated by your authenticator app',
|
|
52
|
+
},
|
|
53
|
+
backupCodeMfa: {
|
|
54
|
+
subtitle: 'Your backup code is the one you got when setting up two-step authentication.',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
userProfile: {
|
|
58
|
+
formButtonPrimary__continue: 'Save',
|
|
59
|
+
start: {
|
|
60
|
+
headerTitle__account: 'Profile details',
|
|
61
|
+
profileSection: {
|
|
62
|
+
primaryButton: 'Edit profile',
|
|
63
|
+
},
|
|
64
|
+
emailAddressesSection: {
|
|
65
|
+
detailsAction__unverified: 'Verify',
|
|
66
|
+
destructiveAction: 'Remove email',
|
|
67
|
+
},
|
|
68
|
+
mfaSection: {
|
|
69
|
+
phoneCode: {
|
|
70
|
+
destructiveActionLabel: 'Remove',
|
|
71
|
+
},
|
|
72
|
+
backupCodes: {
|
|
73
|
+
actionLabel__regenerate: 'Regenerate',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
dangerSection: {
|
|
77
|
+
title: 'Account termination',
|
|
78
|
+
deleteAccountButton: 'Delete account',
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
profilePage: {
|
|
82
|
+
imageFormSubtitle: 'Upload',
|
|
83
|
+
imageFormDestructiveActionSubtitle: 'Remove',
|
|
84
|
+
},
|
|
85
|
+
phoneNumberPage: {
|
|
86
|
+
title: 'Add a phone number',
|
|
87
|
+
infoText:
|
|
88
|
+
'A text message containing a verification link will be sent to this phone number. Message and data rates may apply.',
|
|
89
|
+
},
|
|
90
|
+
connectedAccountPage: {
|
|
91
|
+
socialButtonsBlockButton: '{{provider|titleize}}',
|
|
92
|
+
},
|
|
93
|
+
mfaPhoneCodePage: {
|
|
94
|
+
subtitle__availablePhoneNumbers:
|
|
95
|
+
'Select an existing phone number to register for SMS code two-step verification or add a new one.',
|
|
96
|
+
subtitle__unavailablePhoneNumbers:
|
|
97
|
+
'There are no available phone numbers to register for SMS code two-step verification, please add a new one.',
|
|
98
|
+
},
|
|
99
|
+
deletePage: {
|
|
100
|
+
actionDescription: 'Type "Delete account" below to continue.',
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
organizationSwitcher: {
|
|
104
|
+
action__createOrganization: 'Create organization',
|
|
105
|
+
action__manageOrganization: 'Manage',
|
|
106
|
+
},
|
|
107
|
+
organizationProfile: {
|
|
108
|
+
profilePage: {
|
|
109
|
+
title: 'Update Profile',
|
|
110
|
+
dangerSection: {
|
|
111
|
+
title: 'Danger',
|
|
112
|
+
leaveOrganization: {
|
|
113
|
+
actionDescription: 'Type "{{organizationName}}" below to continue.',
|
|
114
|
+
},
|
|
115
|
+
deleteOrganization: {
|
|
116
|
+
actionDescription: 'Type "{{organizationName}}" below to continue.',
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
invitePage: {
|
|
121
|
+
title: 'Invite new members',
|
|
122
|
+
subtitle: 'Enter or paste one or more email addresses, separated by spaces or commas.',
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
createOrganization: {
|
|
126
|
+
title: 'Create organization',
|
|
127
|
+
},
|
|
128
|
+
organizationList: {
|
|
129
|
+
title: 'Choose an account',
|
|
130
|
+
titleWithoutPersonal: 'Choose an organization',
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`Organization.getDomains` arguments changed'
|
|
3
|
+
matcher: "\\.getDomains\\("
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
There have been a couple changes to the pagination arguments that can be passed into this function - `limit` has been renamed to `pageSize`, and `offset` has been renamed to `initialPage`. This will help to make it more clear and simple to reason about pagination control. Example of how changes might look below:
|
|
7
|
+
|
|
8
|
+
```diff
|
|
9
|
+
import Clerk from "@clerk/clerk-js"
|
|
10
|
+
|
|
11
|
+
const clerk = new Clerk()
|
|
12
|
+
await clerk.load()
|
|
13
|
+
|
|
14
|
+
const { data: orgs } = await clerk.organization.getDomains({
|
|
15
|
+
- limit: 10,
|
|
16
|
+
+ pageSize: 10,
|
|
17
|
+
- offset: 10,
|
|
18
|
+
+ initialPage: 2,
|
|
19
|
+
})
|
|
20
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`Organization.getMembershipRequests` arguments changed'
|
|
3
|
+
matcher: "\\.getMembershipRequests\\("
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
There have been a couple changes to the pagination arguments that can be passed into this function - `limit` has been renamed to `pageSize`, and `offset` has been renamed to `initialPage`. This will help to make it more clear and simple to reason about pagination control. Example of how changes might look below:
|
|
7
|
+
|
|
8
|
+
```diff
|
|
9
|
+
import Clerk from "@clerk/clerk-js"
|
|
10
|
+
|
|
11
|
+
const clerk = new Clerk()
|
|
12
|
+
await clerk.load()
|
|
13
|
+
|
|
14
|
+
const { data: orgs } = await clerk.organization.getMembershipRequests({
|
|
15
|
+
- limit: 10,
|
|
16
|
+
+ pageSize: 10,
|
|
17
|
+
- offset: 10,
|
|
18
|
+
+ initialPage: 2,
|
|
19
|
+
})
|
|
20
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`Organization.getRoles` arguments changed'
|
|
3
|
+
matcher: "\\.getRoles\\("
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
There have been a couple changes to the pagination arguments that can be passed into this function - `limit` has been renamed to `pageSize`, and `offset` has been renamed to `initialPage`. This will help to make it more clear and simple to reason about pagination control. Example of how changes might look below:
|
|
7
|
+
|
|
8
|
+
```diff
|
|
9
|
+
import Clerk from "@clerk/clerk-js"
|
|
10
|
+
|
|
11
|
+
const clerk = new Clerk()
|
|
12
|
+
await clerk.load()
|
|
13
|
+
|
|
14
|
+
const { data: orgs } = await clerk.organization.getRoles({
|
|
15
|
+
- limit: 10,
|
|
16
|
+
+ pageSize: 10,
|
|
17
|
+
- offset: 10,
|
|
18
|
+
+ initialPage: 2,
|
|
19
|
+
})
|
|
20
|
+
```
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`Settings` -> `General` tab in `OrganizationProfile`'
|
|
3
|
+
matcher: '<OrganizationProfile'
|
|
4
|
+
warning: true
|
|
5
|
+
image: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The "Settings" tab within the `<OrganizationProfile />` component has been renamed to "General". If you are linking directly to `/organization-settings` from anywhere, the link will need to be updated to `/organization-general`.
|
|
9
|
+
|
|
10
|
+
If you are [customizing the component](https://clerk.com/docs/components/customization/organization-profile) by re-ordering the pages, the label used to target this page must be changed from `settings` to `general` as well.
|
|
11
|
+
|
|
12
|
+
If you are using the [appearance prop](https://clerk.com/docs/components/customization/overview) to customize the appearance of the `<OrganizationProfile />` component, please note that the `cl-profilePage__organizationSettings` key has also been changed to `cl-profilePage__organizationGeneral` to be consistent with the naming change.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`organizationSwitcherPopoverActionButtonText` customization id removed'
|
|
3
|
+
image: true
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
matcher:
|
|
6
|
+
- "\\.cl-organizationSwitcherPopoverActionButtonText"
|
|
7
|
+
- "\\.cl-organizationSwitcherPopoverActionButtonText__manageOrganization"
|
|
8
|
+
- "\\.cl-organizationSwitcherPopoverActionButtonText__createOrganization"
|
|
9
|
+
- "elements:\\s+{[\\s\\S]*?organizationSwitcherPopoverActionButtonText:[\\s\\S]*?}"
|
|
10
|
+
- "elements:\\s+{[\\s\\S]*?organizationSwitcherPopoverActionButtonText__manageOrganization:[\\s\\S]*?}"
|
|
11
|
+
- "elements:\\s+{[\\s\\S]*?organizationSwitcherPopoverActionButtonText__createOrganization:[\\s\\S]*?}"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
The `organizationSwitcherPopoverActionButtonText` customization id has been removed, as the text for this button is now directly rendered inside the button rather than an extra wrapping element. The nested ids `organizationSwitcherPopoverActionButtonText__manageOrganization` and `organizationSwitcherPopoverActionButtonText__createOrganization` have also been removed. Any styling that needs to apply to the text can be applied to its direct parent `cl-organizationSwitcherPopoverActionButton`.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Identity preview avatar customization ids removed'
|
|
3
|
+
image: true
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
matcher:
|
|
6
|
+
- "\\.cl-identityPreviewAvatarBox"
|
|
7
|
+
- "\\.cl-identityPreviewAvatarImage"
|
|
8
|
+
- "elements:\\s+{[\\s\\S]*?identityPreviewAvatarBox:[\\s\\S]*?}"
|
|
9
|
+
- "elements:\\s+{[\\s\\S]*?identityPreviewAvatarImage:[\\s\\S]*?}"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
When signing in with Clerk's `<SignIn />` component, after entering a username or email the user is brought to a second pane where they can enter a second factor such as a password. On this pane, there is an area called "identity preview" that shows the username/email that they are entering a password/etc for. Previously, this area included the user's avatar, but this is no longer the case in updated designs. As such, the customization ids related to the user's avatar have been removed.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`socialButtonsBlockButtonArrow` customization id removed'
|
|
3
|
+
image: true
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
matcher:
|
|
6
|
+
- "\\.cl-socialButtonsBlockButtonArrow"
|
|
7
|
+
- "elements:\\s+{[\\s\\S]*?socialButtonsBlockButtonArrow:[\\s\\S]*?}"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Social sign-in buttons in the new component designs no longer include arrows, so the `socialButtonsBlockButtonArrow` customization id has been removed. You can use the `socialButtonsIconButton` to apply custom styling to the social buttons if desired.
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Removed localization keys'
|
|
3
|
+
matcherFlags: 'm'
|
|
4
|
+
matcher:
|
|
5
|
+
- "signIn:\\s+{[\\s\\S]*?forgotPassword:\\s+{[\\s\\S]*?title_email:"
|
|
6
|
+
- "signIn:\\s+{[\\s\\S]*?forgotPassword:\\s+{[\\s\\S]*?title_phone:"
|
|
7
|
+
- "signIn:\\s+{[\\s\\S]*?forgotPassword:\\s+{[\\s\\S]*?formSubtitle_email:"
|
|
8
|
+
- "signIn:\\s+{[\\s\\S]*?forgotPassword:\\s+{[\\s\\S]*?formSubtitle_phone:"
|
|
9
|
+
- "signIn:\\s+{[\\s\\S]*?emailCode:\\s+{[\\s\\S]*?formSubtitle:"
|
|
10
|
+
- "signIn:\\s+{[\\s\\S]*?phoneCode:\\s+{[\\s\\S]*?formSubtitle:"
|
|
11
|
+
- "signIn:\\s+{[\\s\\S]*?phoneCodeMfa:\\s+{[\\s\\S]*?formSubtitle:"
|
|
12
|
+
- "signIn:\\s+{[\\s\\S]*?totpMfa:\\s+{[\\s\\S]*?formSubtitle:"
|
|
13
|
+
- "signIn:\\s+{[\\s\\S]*?backupCodeMfa:\\s+{[\\s\\S]*?formTitle:"
|
|
14
|
+
- "signIn:\\s+{[\\s\\S]*?backupCodeMfa:\\s+{[\\s\\S]*?formSubTitle:"
|
|
15
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?detailsTitle__primary:"
|
|
16
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?detailsSubtitle__primary:"
|
|
17
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?detailsTitle__nonPrimary:"
|
|
18
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?detailsSubtitle__nonPrimary:"
|
|
19
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?detailsTitle__unverified:"
|
|
20
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?detailsSubtitle__unverified:"
|
|
21
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?destructiveActionTitle:"
|
|
22
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?emailAddressesSection:\\s+{[\\s\\S]*?destructiveActionSubtitle:"
|
|
23
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?phoneNumbersSection:\\s+{[\\s\\S]*?detailsTitle__primary:"
|
|
24
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?phoneNumbersSection:\\s+{[\\s\\S]*?detailsSubtitle__primary:"
|
|
25
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?phoneNumbersSection:\\s+{[\\s\\S]*?detailsTitle__nonPrimary:"
|
|
26
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?phoneNumbersSection:\\s+{[\\s\\S]*?detailsSubtitle__nonPrimary:"
|
|
27
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?phoneNumbersSection:\\s+{[\\s\\S]*?detailsTitle__unverified:"
|
|
28
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?phoneNumbersSection:\\s+{[\\s\\S]*?detailsSubtitle__unverified:"
|
|
29
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?phoneNumbersSection:\\s+{[\\s\\S]*?destructiveActionTitle:"
|
|
30
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?phoneNumbersSection:\\s+{[\\s\\S]*?destructiveActionSubtitle:"
|
|
31
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?connectedAccountsSection:\\s+{[\\s\\S]*?title__conectionFailed:"
|
|
32
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?connectedAccountsSection:\\s+{[\\s\\S]*?title__connectionFailed:"
|
|
33
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?connectedAccountsSection:\\s+{[\\s\\S]*?title__reauthorize:"
|
|
34
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?connectedAccountsSection:\\s+{[\\s\\S]*?subtitle__reauthorize:"
|
|
35
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?connectedAccountsSection:\\s+{[\\s\\S]*?actionLabel__conectionFailed:"
|
|
36
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?connectedAccountsSection:\\s+{[\\s\\S]*?destructiveActionSubtitle:"
|
|
37
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?connectedAccountsSection:\\s+{[\\s\\S]*?destructiveActionAccordionSubtitle:"
|
|
38
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?phoneCode:.destructiveActionTitle"
|
|
39
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?phoneCode:.destructiveActionSubtitle"
|
|
40
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?phoneCode:.title__default"
|
|
41
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?phoneCode:.title__setDefault"
|
|
42
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?phoneCode:.subtitle__default"
|
|
43
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?phoneCode:.subtitle__setDefault"
|
|
44
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?totp:.title"
|
|
45
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?totp:.subtitle"
|
|
46
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?totp:.destructiveActionSubtitle"
|
|
47
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?mfaSection:\\s+{[\\s\\S]*?totp:.destructiveActionLabel"
|
|
48
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?activeDevicesSection:\\s+{[\\s\\S]*?primaryButton:"
|
|
49
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?activeDevicesSection:\\s+{[\\s\\S]*?detailsTitle:"
|
|
50
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?activeDevicesSection:\\s+{[\\s\\S]*?detailsSubtitle:"
|
|
51
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?activeDevicesSection:\\s+{[\\s\\S]*?destructiveActionTitle:"
|
|
52
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?activeDevicesSection:\\s+{[\\s\\S]*?destructiveActionSubtitle:"
|
|
53
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?web3WalletsSection:\\s+{[\\s\\S]*?destructiveActionTitle:"
|
|
54
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?web3WalletsSection:\\s+{[\\s\\S]*?destructiveActionSubtitle:"
|
|
55
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?dangerSection:\\s+{[\\s\\S]*?deleteAccountTitle:"
|
|
56
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?dangerSection:\\s+{[\\s\\S]*?deleteAccountDescription:"
|
|
57
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?headerSubtitle__account:"
|
|
58
|
+
- "userProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?headerSubtitle__security:"
|
|
59
|
+
- "organizationProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?headerTitle__settings:"
|
|
60
|
+
- "organizationProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?headerSubtitle__members:"
|
|
61
|
+
- "organizationProfile:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?headerSubtitle__settings:"
|
|
62
|
+
- "organizationProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?domainSection:\\s+{[\\s\\S]*?unverifiedDomain_menuAction__verify:"
|
|
63
|
+
- "organizationProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?domainSection:\\s+{[\\s\\S]*?unverifiedDomain_menuAction__remove:"
|
|
64
|
+
- "organizationProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?subtitle"
|
|
65
|
+
- "organizationProfile:\\s+{[\\s\\S]*?membersPage:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?headerTitle__active"
|
|
66
|
+
- "organizationProfile:\\s+{[\\s\\S]*?membersPage:\\s+{[\\s\\S]*?start:\\s+{[\\s\\S]*?headerTitle__invited"
|
|
67
|
+
- "createOrganization:\\s+{[\\s\\S]*?subtitle"
|
|
68
|
+
- 'formFieldLabel__emailAddress_phoneNumber:'
|
|
69
|
+
- 'formFieldLabel__phoneNumber_username:'
|
|
70
|
+
- 'formFieldLabel__emailAddress_phoneNumber_username:'
|
|
71
|
+
- 'formFieldInputPlaceholder__emailAddress_phoneNumber:'
|
|
72
|
+
- 'formFieldInputPlaceholder__phoneNumber_username:'
|
|
73
|
+
- 'formFieldInputPlaceholder__emailAddress_phoneNumber_username:'
|
|
74
|
+
- "userProfile:\\s+{[\\s\\S]*?phoneNumberPage:\\s+{[\\s\\S]*?infoText__secondary:"
|
|
75
|
+
- "userProfile:\\s+{[\\s\\S]*?mfaPhoneCodePage:\\s+{[\\s\\S]*?successMessage:"
|
|
76
|
+
- "userProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?fileDropAreaTitle:"
|
|
77
|
+
- "userProfile:\\s+{[\\s\\S]*?profilePage:\\s+{[\\s\\S]*?fileDropAreaAction:"
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
As part of the redesign of Clerk's components, a number of localization keys have been removed as they were no longer present in the new designs. You should remove any of these keys that are present in your localization object as they are no longer needed.
|
|
81
|
+
|
|
82
|
+
```js
|
|
83
|
+
const deletedKeys = [
|
|
84
|
+
'signIn.forgotPassword.title_email',
|
|
85
|
+
'signIn.forgotPassword.title_phone',
|
|
86
|
+
'signIn.forgotPassword.formSubtitle_email',
|
|
87
|
+
'signIn.forgotPassword.formSubtitle_phone',
|
|
88
|
+
'signIn.emailCode.formSubtitle',
|
|
89
|
+
'signIn.phoneCode.formSubtitle',
|
|
90
|
+
'signIn.phoneCodeMfa.formSubtitle',
|
|
91
|
+
'signIn.totpMfa.formSubtitle',
|
|
92
|
+
'signIn.backupCodeMfa.formTitle',
|
|
93
|
+
'signIn.backupCodeMfa.formSubtitle',
|
|
94
|
+
'userProfile.start.emailAddressesSection.detailsTitle__primary',
|
|
95
|
+
'userProfile.start.emailAddressesSection.detailsSubtitle__primary',
|
|
96
|
+
'userProfile.start.emailAddressesSection.detailsTitle__nonPrimary',
|
|
97
|
+
'userProfile.start.emailAddressesSection.detailsSubtitle__nonPrimary',
|
|
98
|
+
'userProfile.start.emailAddressesSection.detailsTitle__unverified',
|
|
99
|
+
'userProfile.start.emailAddressesSection.detailsSubtitle__unverified',
|
|
100
|
+
'userProfile.start.emailAddressesSection.destructiveActionTitle',
|
|
101
|
+
'userProfile.start.emailAddressesSection.destructiveActionSubtitle',
|
|
102
|
+
'userProfile.start.phoneNumbersSection.detailsTitle__primary',
|
|
103
|
+
'userProfile.start.phoneNumbersSection.detailsSubtitle__primary',
|
|
104
|
+
'userProfile.start.phoneNumbersSection.detailsTitle__nonPrimary',
|
|
105
|
+
'userProfile.start.phoneNumbersSection.detailsSubtitle__nonPrimary',
|
|
106
|
+
'userProfile.start.phoneNumbersSection.detailsTitle__unverified',
|
|
107
|
+
'userProfile.start.phoneNumbersSection.detailsSubtitle__unverified',
|
|
108
|
+
'userProfile.start.phoneNumbersSection.destructiveActionTitle',
|
|
109
|
+
'userProfile.start.phoneNumbersSection.destructiveActionSubtitle',
|
|
110
|
+
'userProfile.start.connectedAccountsSection.title__conectionFailed',
|
|
111
|
+
'userProfile.start.connectedAccountsSection.title__connectionFailed',
|
|
112
|
+
'userProfile.start.connectedAccountsSection.title__reauthorize',
|
|
113
|
+
'userProfile.start.connectedAccountsSection.subtitle__reauthorize',
|
|
114
|
+
'userProfile.start.connectedAccountsSection.actionLabel__conectionFailed',
|
|
115
|
+
'userProfile.start.connectedAccountsSection.destructiveActionSubtitle',
|
|
116
|
+
'userProfile.start.connectedAccountsSection.destructiveActionAccordionSubtitle',
|
|
117
|
+
'userProfile.start.mfaSection.phoneCode.destructiveActionTitle',
|
|
118
|
+
'userProfile.start.mfaSection.phoneCode.destructiveActionSubtitle',
|
|
119
|
+
'userProfile.start.mfaSection.phoneCode.title__default',
|
|
120
|
+
'userProfile.start.mfaSection.phoneCode.title__setDefault',
|
|
121
|
+
'userProfile.start.mfaSection.phoneCode.subtitle__default',
|
|
122
|
+
'userProfile.start.mfaSection.phoneCode.subtitle__setDefault',
|
|
123
|
+
'userProfile.start.mfaSection.totp.title',
|
|
124
|
+
'userProfile.start.mfaSection.totp.subtitle',
|
|
125
|
+
'userProfile.start.mfaSection.totp.destructiveActionSubtitle',
|
|
126
|
+
'userProfile.start.mfaSection.totp.destructiveActionLabel',
|
|
127
|
+
'userProfile.start.activeDevicesSection.primaryButton',
|
|
128
|
+
'userProfile.start.activeDevicesSection.detailsTitle',
|
|
129
|
+
'userProfile.start.activeDevicesSection.detailsSubtitle',
|
|
130
|
+
'userProfile.start.activeDevicesSection.destructiveActionTitle',
|
|
131
|
+
'userProfile.start.activeDevicesSection.destructiveActionSubtitle',
|
|
132
|
+
'userProfile.start.web3WalletsSection.destructiveActionTitle',
|
|
133
|
+
'userProfile.start.web3WalletsSection.destructiveActionSubtitle',
|
|
134
|
+
'userProfile.start.dangerSection.deleteAccountTitle',
|
|
135
|
+
'userProfile.start.dangerSection.deleteAccountDescription',
|
|
136
|
+
'userProfile.start.headerSubtitle__account',
|
|
137
|
+
'userProfile.start.headerSubtitle__security',
|
|
138
|
+
'organizationProfile.start.headerTitle__settings',
|
|
139
|
+
'organizationProfile.start.headerSubtitle__members',
|
|
140
|
+
'organizationProfile.start.headerSubtitle__settings',
|
|
141
|
+
'organizationProfile.profilePage.domainSection.unverifiedDomain_menuAction__verify',
|
|
142
|
+
'organizationProfile.profilePage.domainSection.unverifiedDomain_menuAction__remove',
|
|
143
|
+
'organizationProfile.profilePage.subtitle',
|
|
144
|
+
'organizationProfile.membersPage.start.headerTitle__active',
|
|
145
|
+
'organizationProfile.membersPage.start.headerTitle__invited',
|
|
146
|
+
'createOrganization.subtitle',
|
|
147
|
+
'formFieldLabel__emailAddress_phoneNumber',
|
|
148
|
+
'formFieldLabel__phoneNumber_username',
|
|
149
|
+
'formFieldLabel__emailAddress_phoneNumber_username',
|
|
150
|
+
'formFieldInputPlaceholder__emailAddress_phoneNumber',
|
|
151
|
+
'formFieldInputPlaceholder__phoneNumber_username',
|
|
152
|
+
'formFieldInputPlaceholder__emailAddress_phoneNumber_username',
|
|
153
|
+
'userProfile.phoneNumberPage.infoText__secondary',
|
|
154
|
+
'userProfile.mfaPhoneCodePage.successMessage',
|
|
155
|
+
'userProfile.profilePage.fileDropAreaTitle',
|
|
156
|
+
'userProfile.profilePage.fileDropAreaAction',
|
|
157
|
+
];
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
If you'd like to automate this, you can use the [lodash omit function](https://lodash.com/docs/#omit) as such:
|
|
161
|
+
|
|
162
|
+
```js
|
|
163
|
+
import { omit } from 'lodash-es';
|
|
164
|
+
|
|
165
|
+
const localization = omit(yourOldOject, deletedKeys);
|
|
166
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Replace `signOutCallback` prop on `SignOutButton` with `redirectUrl`'
|
|
3
|
+
matcher: "<SignOutButton[\\s\\S]*?signOutCallback=[\\s\\S]*?>"
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The `signOutCallback` prop on the [`<SignOutButton />` component](https://clerk.com/docs/components/unstyled/sign-out-button) has been removed. Instead, you can use the `redirectUrl` prop. Example below:
|
|
8
|
+
|
|
9
|
+
```diff
|
|
10
|
+
import { SignOutButton } from "@clerk/clerk-react";
|
|
11
|
+
|
|
12
|
+
export const Signout = () => {
|
|
13
|
+
return (
|
|
14
|
+
<SignOutButton
|
|
15
|
+
- signOutCallback={() => { window.location.href = "/your-path" }}
|
|
16
|
+
+ redirectUrl="/your-path"
|
|
17
|
+
>
|
|
18
|
+
<button>Sign Out</button>
|
|
19
|
+
</SignOutButton>
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
```
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: '`membershipList` -> `members` as param to `useOrganization`'
|
|
3
|
-
matcher: "useOrganizations\\(\\s*{
|
|
3
|
+
matcher: "useOrganizations\\(\\s*{[\\s\\S]*?membershipList:"
|
|
4
|
+
matcherFlags: 'm'
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
The `membershipList` param from the `useOrganization` hook has been removed. Instead, [use the `memberships` param](https://clerk.com/docs/references/react/use-organization#parameters). Examples of each can be seen here:
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`userButtonPopoverActionButtonText` customization id removed'
|
|
3
|
+
image: true
|
|
4
|
+
matcher:
|
|
5
|
+
- "\\.cl-userButtonPopoverActionButtonText"
|
|
6
|
+
- "\\.cl-userButtonPopoverActionButtonText__signOut"
|
|
7
|
+
- "\\.cl-userButtonPopoverActionButtonText__manageAccount"
|
|
8
|
+
- "elements:\\s+{[\\s\\S]*?userButtonPopoverActionButtonText:[\\s\\S]*?}"
|
|
9
|
+
- "elements:\\s+{[\\s\\S]*?userButtonPopoverActionButtonText__signOut:[\\s\\S]*?}"
|
|
10
|
+
- "elements:\\s+{[\\s\\S]*?userButtonPopoverActionButtonText__manageAccount:[\\s\\S]*?}"
|
|
11
|
+
matcherFlags: 'm'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
The `userButtonPopoverActionButtonText` customization id has been removed, as the text for this button is now directly rendered inside the button rather than an extra wrapping element. The nested ids `userButtonPopoverActionButtonText__signOut` and `userButtonPopoverActionButtonText__manageAccount` have also been removed. Any styling that needs to apply to the text can be applied to its direct parent `cl-userButtonPopoverActionButton`.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`userButtonPopoverActionButtonText` descriptor removed'
|
|
3
|
+
matcher:
|
|
4
|
+
["\\.cl-userButtonPopoverActionButtonText", "elements:\\s+{[\\s\\S]*?userButtonPopoverActionButtonText:[\\s\\S]*?}"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The `userButtonPopoverActionButtonText` customization descriptor has been removed, as the text for this button is now directly rendered inside the button rather than an extra wrapping element. Any styling that needs to apply to the text can be applied to its direct parent `cl-userButtonPopoverActionButton`.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`userButtonBox` is now a child of `userButtonTrigger`'
|
|
3
|
+
warning: true
|
|
4
|
+
matcher:
|
|
5
|
+
- "\\.cl-userButtonTrigger"
|
|
6
|
+
- "\\.cl-userButtonBox"
|
|
7
|
+
- "elements:\\s+{[\\s\\S]*?userButtonTrigger:[\\s\\S]*?}"
|
|
8
|
+
- "elements:\\s+{[\\s\\S]*?userButtonBox:[\\s\\S]*?}"
|
|
9
|
+
matcherFlags: 'm'
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
We have swapped the parent-child relationship of the two elements `userButtonTrigger` and `userButtonBox`. Previously, `userButtonTrigger` was nested inside of `userButtonBox`, and now `userButtonBox` is nested inside of `userButtonTrigger`. This change resolves [some usability issues](https://github.com/clerk/javascript/issues/1625) in `<UserButton />. If you are applying style customization to either of these elements, your customizations may need to be adjusted.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'Within `<UserProfile />`, Account and Security Pages Separated'
|
|
3
|
+
matcher: '(?:<UserProfile|<UserButton)'
|
|
4
|
+
warning: true
|
|
5
|
+
image: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Within the `<UserProfile />` component (which is also rendered by `<UserButton />`), the "Account" and "Security" pages now live within their own tabs. Previously, "Security" was a section within the "Account" tab. The "Security" page can now be directly linked to under the `/security` path if desired.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`withClerk` function removed'
|
|
3
|
+
matcher: "import\\s+{[\\s\\S]*?withClerk[\\s\\S]*?from\\s+['\"]@clerk\\/(?:nextjs|clerk-react)[\\s\\S]*?['\"]"
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The `withClerk` higher order function has been removed. If you would still like to use this function in the way its implemented, it can be created quickly using Clerk's [custom hooks](https://clerk.com/docs/references/react/overview). An example of how to do so is below:
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
function withClerk(Component, displayName) {
|
|
11
|
+
displayName = displayName || Component.displayName || Component.name || 'Component';
|
|
12
|
+
Component.displayName = displayName;
|
|
13
|
+
const HOC = props => {
|
|
14
|
+
const clerk = useIsomorphicClerkContext();
|
|
15
|
+
|
|
16
|
+
if (!clerk.loaded) return null;
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<Component
|
|
20
|
+
{...props}
|
|
21
|
+
clerk={clerk}
|
|
22
|
+
/>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
HOC.displayName = `withClerk(${displayName})`;
|
|
27
|
+
return HOC;
|
|
28
|
+
}
|
|
29
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`WithClerk` component removed'
|
|
3
|
+
matcher: "import\\s+{[\\s\\S]*?WithClerk[\\s\\S]*?from\\s+['\"]@clerk\\/(?:nextjs|clerk-react)[\\s\\S]*?['\"]"
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The `WithClerk` higher order component has been removed. If you would still like to use this function in the way its implemented, it can be created quickly using Clerk's [custom hooks](https://clerk.com/docs/references/react/overview). An example of how to do so is below:
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
export const WithClerk = ({ children }) => {
|
|
11
|
+
const clerk = useClerk();
|
|
12
|
+
if (typeof children !== 'function') throw new Error();
|
|
13
|
+
|
|
14
|
+
return {children(clerk)};
|
|
15
|
+
};
|
|
16
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`withSession` function removed'
|
|
3
|
+
matcher: "import\\s+{[\\s\\S]*?withSession[\\s\\S]*?from\\s+['\"]@clerk\\/(?:nextjs|clerk-react)[\\s\\S]*?['\"]"
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The `withSession` higher order function has been removed. If you would still like to use this function in the way its implemented, it can be created quickly using Clerk's [custom hooks](https://clerk.com/docs/references/react/overview). An example of how to do so is below:
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
function withSession(Component, displayName) {
|
|
11
|
+
displayName = displayName || Component.displayName || Component.name || 'Component';
|
|
12
|
+
Component.displayName = displayName;
|
|
13
|
+
const HOC = props => {
|
|
14
|
+
const session = useSessionContext();
|
|
15
|
+
|
|
16
|
+
if (!session) return null;
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<Component
|
|
20
|
+
{...props}
|
|
21
|
+
session={session}
|
|
22
|
+
/>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
HOC.displayName = `withSession(${displayName})`;
|
|
27
|
+
return HOC;
|
|
28
|
+
}
|
|
29
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`WithSession` component removed'
|
|
3
|
+
matcher: "import\\s+{[\\s\\S]*?WithSession[\\s\\S]*?from\\s+['\"]@clerk\\/(?:nextjs|clerk-react)[\\s\\S]*?['\"]"
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The `WithSession` higher order component has been removed. If you would still like to use this function in the way its implemented, it can be created quickly using Clerk's [custom hooks](https://clerk.com/docs/references/react/overview). An example of how to do so is below:
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
export const WithSession = ({ children }) => {
|
|
11
|
+
const session = useSession();
|
|
12
|
+
if (typeof children !== 'function') throw new Error();
|
|
13
|
+
|
|
14
|
+
return {children(session)};
|
|
15
|
+
};
|
|
16
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '`withUser` function removed'
|
|
3
|
+
matcher: "import\\s+{[\\s\\S]*?withUser[\\s\\S]*?from\\s+['\"]@clerk\\/(?:nextjs|clerk-react)[\\s\\S]*?['\"]"
|
|
4
|
+
matcherFlags: 'm'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The `withUser` higher order function has been removed. If you would still like to use this function in the way its implemented, it can be created quickly using Clerk's [custom hooks](https://clerk.com/docs/references/react/overview). An example of how to do so is below:
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
function withUser(Component, displayName) {
|
|
11
|
+
displayName = displayName || Component.displayName || Component.name || 'Component';
|
|
12
|
+
Component.displayName = displayName;
|
|
13
|
+
const HOC = props => {
|
|
14
|
+
const clerk = useUserContext();
|
|
15
|
+
|
|
16
|
+
if (!user) return null;
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<Component
|
|
20
|
+
{...props}
|
|
21
|
+
user={user}
|
|
22
|
+
/>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
HOC.displayName = `withUser(${displayName})`;
|
|
27
|
+
return HOC;
|
|
28
|
+
}
|
|
29
|
+
```
|