@better-auth-ui/react 1.6.7 → 1.6.9
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/components/auth/auth-context.d.ts +3 -0
- package/dist/components/auth/auth-context.js +4 -0
- package/dist/components/auth/auth-provider.d.ts +4 -4
- package/dist/components/auth/auth-provider.js +65 -41
- package/dist/components/auth/email/email-changed.d.ts +2 -2
- package/dist/components/auth/email/email-changed.js +68 -154
- package/dist/components/auth/email/email-localization.d.ts +11 -3
- package/dist/components/auth/email/email-localization.js +25 -18
- package/dist/components/auth/email/email-styles.js +77 -52
- package/dist/components/auth/email/email-verification.d.ts +2 -2
- package/dist/components/auth/email/email-verification.js +73 -138
- package/dist/components/auth/email/index.d.ts +10 -9
- package/dist/components/auth/email/index.js +10 -9
- package/dist/components/auth/email/magic-link.d.ts +2 -2
- package/dist/components/auth/email/magic-link.js +70 -139
- package/dist/components/auth/email/new-device.d.ts +2 -2
- package/dist/components/auth/email/new-device.js +88 -221
- package/dist/components/auth/email/organization-invitation.d.ts +121 -0
- package/dist/components/auth/email/organization-invitation.js +110 -0
- package/dist/components/auth/email/otp-email.d.ts +2 -2
- package/dist/components/auth/email/otp-email.js +63 -127
- package/dist/components/auth/email/password-changed.d.ts +2 -2
- package/dist/components/auth/email/password-changed.js +74 -157
- package/dist/components/auth/email/reset-password.d.ts +2 -2
- package/dist/components/auth/email/reset-password.js +66 -138
- package/dist/components/auth/fetch-options-provider.d.ts +1 -1
- package/dist/components/auth/fetch-options-provider.js +28 -27
- package/dist/components/icons/apple.d.ts +1 -1
- package/dist/components/icons/apple.js +9 -16
- package/dist/components/icons/atlassian.d.ts +1 -1
- package/dist/components/icons/atlassian.js +13 -38
- package/dist/components/icons/cognito.d.ts +1 -1
- package/dist/components/icons/cognito.js +9 -19
- package/dist/components/icons/discord.d.ts +1 -1
- package/dist/components/icons/discord.js +9 -16
- package/dist/components/icons/dropbox.d.ts +1 -1
- package/dist/components/icons/dropbox.js +9 -16
- package/dist/components/icons/facebook.d.ts +1 -1
- package/dist/components/icons/facebook.js +11 -19
- package/dist/components/icons/figma.d.ts +1 -1
- package/dist/components/icons/figma.js +12 -34
- package/dist/components/icons/github.d.ts +1 -1
- package/dist/components/icons/github.js +11 -16
- package/dist/components/icons/gitlab.d.ts +1 -1
- package/dist/components/icons/gitlab.js +9 -30
- package/dist/components/icons/google.d.ts +1 -1
- package/dist/components/icons/google.js +9 -39
- package/dist/components/icons/huggingface.d.ts +1 -1
- package/dist/components/icons/huggingface.js +9 -38
- package/dist/components/icons/index.d.ts +35 -35
- package/dist/components/icons/index.js +35 -35
- package/dist/components/icons/kakao.d.ts +1 -1
- package/dist/components/icons/kakao.js +11 -16
- package/dist/components/icons/kick.d.ts +1 -1
- package/dist/components/icons/kick.js +11 -20
- package/dist/components/icons/line.d.ts +1 -1
- package/dist/components/icons/line.js +9 -16
- package/dist/components/icons/linear.d.ts +1 -1
- package/dist/components/icons/linear.js +9 -16
- package/dist/components/icons/linkedin.d.ts +1 -1
- package/dist/components/icons/linkedin.js +9 -33
- package/dist/components/icons/microsoft.d.ts +1 -1
- package/dist/components/icons/microsoft.js +9 -30
- package/dist/components/icons/naver.d.ts +1 -1
- package/dist/components/icons/naver.js +9 -16
- package/dist/components/icons/notion.d.ts +1 -1
- package/dist/components/icons/notion.js +9 -16
- package/dist/components/icons/paybin.d.ts +1 -1
- package/dist/components/icons/paybin.js +8 -32
- package/dist/components/icons/paypal.d.ts +1 -1
- package/dist/components/icons/paypal.js +9 -30
- package/dist/components/icons/polar.d.ts +1 -1
- package/dist/components/icons/polar.js +9 -24
- package/dist/components/icons/railway.d.ts +1 -1
- package/dist/components/icons/railway.js +9 -16
- package/dist/components/icons/reddit.d.ts +1 -1
- package/dist/components/icons/reddit.js +9 -21
- package/dist/components/icons/roblox.d.ts +1 -1
- package/dist/components/icons/roblox.js +12 -17
- package/dist/components/icons/salesforce.d.ts +1 -1
- package/dist/components/icons/salesforce.js +9 -16
- package/dist/components/icons/slack.d.ts +1 -1
- package/dist/components/icons/slack.js +9 -30
- package/dist/components/icons/spotify.d.ts +1 -1
- package/dist/components/icons/spotify.js +9 -16
- package/dist/components/icons/tiktok.d.ts +1 -1
- package/dist/components/icons/tiktok.js +10 -23
- package/dist/components/icons/twitch.d.ts +1 -1
- package/dist/components/icons/twitch.js +12 -43
- package/dist/components/icons/vercel.d.ts +1 -1
- package/dist/components/icons/vercel.js +9 -16
- package/dist/components/icons/vk.d.ts +1 -1
- package/dist/components/icons/vk.js +9 -16
- package/dist/components/icons/wechat.d.ts +1 -1
- package/dist/components/icons/wechat.js +9 -16
- package/dist/components/icons/x.d.ts +1 -1
- package/dist/components/icons/x.js +9 -16
- package/dist/components/icons/zoom.d.ts +1 -1
- package/dist/components/icons/zoom.js +11 -69
- package/dist/components/mutation-invalidator.d.ts +1 -0
- package/dist/components/mutation-invalidator.js +31 -0
- package/dist/components/settings/account/theme-preview.js +7 -286
- package/dist/email.d.ts +1 -1
- package/dist/email.js +1 -11
- package/dist/hooks/auth/use-authenticate.d.ts +3 -3
- package/dist/hooks/auth/use-authenticate.js +28 -22
- package/dist/hooks/auth/use-user.d.ts +34 -34
- package/dist/hooks/auth/use-user.js +14 -10
- package/dist/hooks/use-auth-mutation.d.ts +4 -4
- package/dist/hooks/use-auth-mutation.js +18 -10
- package/dist/hooks/use-auth-plugin.d.ts +1 -1
- package/dist/hooks/use-auth-plugin.js +26 -8
- package/dist/hooks/use-auth-query.d.ts +3 -3
- package/dist/hooks/use-auth-query.js +20 -14
- package/dist/index.d.ts +48 -45
- package/dist/index.js +47 -79
- package/dist/lib/auth-client.d.ts +7 -4
- package/dist/lib/auth-client.js +1 -0
- package/dist/lib/auth-plugin.d.ts +19 -3
- package/dist/lib/auth-plugin.js +1 -0
- package/dist/lib/auth-server.d.ts +10 -3
- package/dist/lib/auth-server.js +1 -0
- package/dist/lib/provider-icons.d.ts +2 -2
- package/dist/lib/provider-icons.js +47 -75
- package/dist/lib/settings-tab.d.ts +19 -0
- package/dist/lib/settings-tab.js +1 -0
- package/dist/lib/utils.d.ts +1 -1
- package/dist/lib/utils.js +4 -7
- package/dist/mutations/api-key/create-api-key-mutation.d.ts +9 -7
- package/dist/mutations/api-key/create-api-key-mutation.js +37 -27
- package/dist/mutations/api-key/delete-api-key-mutation.d.ts +10 -6
- package/dist/mutations/api-key/delete-api-key-mutation.js +37 -27
- package/dist/mutations/auth/request-password-reset-mutation.d.ts +4 -4
- package/dist/mutations/auth/request-password-reset-mutation.js +31 -22
- package/dist/mutations/auth/reset-password-mutation.d.ts +4 -4
- package/dist/mutations/auth/reset-password-mutation.js +32 -22
- package/dist/mutations/auth/send-verification-email-mutation.d.ts +4 -4
- package/dist/mutations/auth/send-verification-email-mutation.js +31 -22
- package/dist/mutations/auth/sign-in-email-mutation.d.ts +10 -10
- package/dist/mutations/auth/sign-in-email-mutation.js +38 -27
- package/dist/mutations/auth/sign-in-social-mutation.d.ts +6 -6
- package/dist/mutations/auth/sign-in-social-mutation.js +36 -22
- package/dist/mutations/auth/sign-out-mutation.d.ts +9 -7
- package/dist/mutations/auth/sign-out-mutation.js +39 -26
- package/dist/mutations/auth/sign-up-email-mutation.d.ts +12 -12
- package/dist/mutations/auth/sign-up-email-mutation.js +34 -27
- package/dist/mutations/auth-mutation-options.d.ts +2 -2
- package/dist/mutations/auth-mutation-options.js +22 -18
- package/dist/mutations/magic-link/sign-in-magic-link-mutation.d.ts +4 -4
- package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +31 -22
- package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +8 -8
- package/dist/mutations/multi-session/revoke-multi-session-mutation.js +37 -27
- package/dist/mutations/multi-session/set-active-session-mutation.d.ts +8 -9
- package/dist/mutations/multi-session/set-active-session-mutation.js +38 -29
- package/dist/mutations/organization/accept-invitation-mutation.d.ts +43 -0
- package/dist/mutations/organization/accept-invitation-mutation.js +32 -0
- package/dist/mutations/organization/cancel-invitation-mutation.d.ts +25 -0
- package/dist/mutations/organization/cancel-invitation-mutation.js +28 -0
- package/dist/mutations/organization/check-slug-mutation.d.ts +21 -0
- package/dist/mutations/organization/check-slug-mutation.js +30 -0
- package/dist/mutations/organization/create-organization-mutation.d.ts +39 -0
- package/dist/mutations/organization/create-organization-mutation.js +29 -0
- package/dist/mutations/organization/delete-organization-mutation.d.ts +21 -0
- package/dist/mutations/organization/delete-organization-mutation.js +29 -0
- package/dist/mutations/organization/index.d.ts +12 -0
- package/dist/mutations/organization/index.js +12 -0
- package/dist/mutations/organization/invite-member-mutation.d.ts +43 -0
- package/dist/mutations/organization/invite-member-mutation.js +35 -0
- package/dist/mutations/organization/leave-organization-mutation.d.ts +65 -0
- package/dist/mutations/organization/leave-organization-mutation.js +32 -0
- package/dist/mutations/organization/reject-invitation-mutation.d.ts +31 -0
- package/dist/mutations/organization/reject-invitation-mutation.js +25 -0
- package/dist/mutations/organization/remove-member-mutation.d.ts +35 -0
- package/dist/mutations/organization/remove-member-mutation.js +29 -0
- package/dist/mutations/organization/set-active-organization-mutation.d.ts +71 -0
- package/dist/mutations/organization/set-active-organization-mutation.js +72 -0
- package/dist/mutations/organization/update-member-role-mutation.d.ts +31 -0
- package/dist/mutations/organization/update-member-role-mutation.js +36 -0
- package/dist/mutations/organization/update-organization-mutation.d.ts +21 -0
- package/dist/mutations/organization/update-organization-mutation.js +36 -0
- package/dist/mutations/passkey/add-passkey-mutation.d.ts +16 -16
- package/dist/mutations/passkey/add-passkey-mutation.js +38 -27
- package/dist/mutations/passkey/delete-passkey-mutation.d.ts +8 -8
- package/dist/mutations/passkey/delete-passkey-mutation.js +37 -27
- package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +24 -24
- package/dist/mutations/passkey/sign-in-passkey-mutation.js +36 -27
- package/dist/mutations/settings/change-email-mutation.d.ts +9 -8
- package/dist/mutations/settings/change-email-mutation.js +35 -27
- package/dist/mutations/settings/change-password-mutation.d.ts +6 -6
- package/dist/mutations/settings/change-password-mutation.js +31 -22
- package/dist/mutations/settings/delete-user-mutation.d.ts +4 -4
- package/dist/mutations/settings/delete-user-mutation.js +31 -22
- package/dist/mutations/settings/link-social-mutation.d.ts +4 -4
- package/dist/mutations/settings/link-social-mutation.js +31 -22
- package/dist/mutations/settings/revoke-session-mutation.d.ts +8 -8
- package/dist/mutations/settings/revoke-session-mutation.js +37 -27
- package/dist/mutations/settings/unlink-account-mutation.d.ts +8 -8
- package/dist/mutations/settings/unlink-account-mutation.js +37 -27
- package/dist/mutations/settings/update-user-mutation.d.ts +8 -8
- package/dist/mutations/settings/update-user-mutation.js +34 -33
- package/dist/mutations/username/is-username-available-mutation.d.ts +4 -4
- package/dist/mutations/username/is-username-available-mutation.js +34 -22
- package/dist/mutations/username/sign-in-username-mutation.d.ts +10 -10
- package/dist/mutations/username/sign-in-username-mutation.js +35 -27
- package/dist/plugins/captcha-plugin.d.ts +3 -3
- package/dist/plugins/captcha-plugin.js +31 -26
- package/dist/plugins.d.ts +1 -1
- package/dist/plugins.js +1 -2
- package/dist/queries/api-key/list-api-keys-query.d.ts +20 -11
- package/dist/queries/api-key/list-api-keys-query.js +52 -29
- package/dist/queries/auth/session-query.d.ts +6 -6
- package/dist/queries/auth/session-query.js +70 -28
- package/dist/queries/auth-query-options.d.ts +2 -2
- package/dist/queries/auth-query-options.js +20 -16
- package/dist/queries/multi-session/list-device-sessions-query.d.ts +8 -8
- package/dist/queries/multi-session/list-device-sessions-query.js +83 -29
- package/dist/queries/organization/active-organization-query.d.ts +39 -0
- package/dist/queries/organization/active-organization-query.js +37 -0
- package/dist/queries/organization/full-organization-query.d.ts +37 -0
- package/dist/queries/organization/full-organization-query.js +31 -0
- package/dist/queries/organization/has-permission-query.d.ts +21 -0
- package/dist/queries/organization/has-permission-query.js +38 -0
- package/dist/queries/organization/index.d.ts +7 -0
- package/dist/queries/organization/index.js +7 -0
- package/dist/queries/organization/list-invitations-query.d.ts +29 -0
- package/dist/queries/organization/list-invitations-query.js +37 -0
- package/dist/queries/organization/list-members-query.d.ts +61 -0
- package/dist/queries/organization/list-members-query.js +37 -0
- package/dist/queries/organization/list-organizations-query.d.ts +22 -0
- package/dist/queries/organization/list-organizations-query.js +31 -0
- package/dist/queries/organization/list-user-invitations-query.d.ts +29 -0
- package/dist/queries/organization/list-user-invitations-query.js +31 -0
- package/dist/queries/passkey/list-passkeys-query.d.ts +8 -8
- package/dist/queries/passkey/list-passkeys-query.js +81 -29
- package/dist/queries/settings/account-info-query.d.ts +6 -6
- package/dist/queries/settings/account-info-query.js +85 -29
- package/dist/queries/settings/list-accounts-query.d.ts +6 -6
- package/dist/queries/settings/list-accounts-query.js +83 -29
- package/dist/queries/settings/list-sessions-query.d.ts +6 -6
- package/dist/queries/settings/list-sessions-query.js +81 -29
- package/dist/server/queries/api-key/list-api-keys-query.d.ts +83 -0
- package/dist/server/queries/api-key/list-api-keys-query.js +49 -0
- package/dist/server/queries/auth/session-query.d.ts +5 -5
- package/dist/server/queries/auth/session-query.js +50 -12
- package/dist/server/queries/multi-session/list-device-sessions-query.d.ts +7 -7
- package/dist/server/queries/multi-session/list-device-sessions-query.js +53 -11
- package/dist/server/queries/organization/active-organization-query.d.ts +61 -0
- package/dist/server/queries/organization/active-organization-query.js +25 -0
- package/dist/server/queries/organization/full-organization-query.d.ts +42 -0
- package/dist/server/queries/organization/full-organization-query.js +21 -0
- package/dist/server/queries/organization/has-permission-query.d.ts +66 -0
- package/dist/server/queries/organization/has-permission-query.js +23 -0
- package/dist/server/queries/organization/list-invitations-query.d.ts +34 -0
- package/dist/server/queries/organization/list-invitations-query.js +21 -0
- package/dist/server/queries/organization/list-members-query.d.ts +66 -0
- package/dist/server/queries/organization/list-members-query.js +21 -0
- package/dist/server/queries/organization/list-organizations-query.d.ts +27 -0
- package/dist/server/queries/organization/list-organizations-query.js +21 -0
- package/dist/server/queries/organization/list-user-invitations-query.d.ts +34 -0
- package/dist/server/queries/organization/list-user-invitations-query.js +21 -0
- package/dist/server/queries/passkey/list-passkeys-query.d.ts +7 -7
- package/dist/server/queries/passkey/list-passkeys-query.js +53 -11
- package/dist/server/queries/settings/account-info-query.d.ts +5 -5
- package/dist/server/queries/settings/account-info-query.js +53 -11
- package/dist/server/queries/settings/list-accounts-query.d.ts +5 -5
- package/dist/server/queries/settings/list-accounts-query.js +53 -11
- package/dist/server/queries/settings/list-sessions-query.d.ts +5 -5
- package/dist/server/queries/settings/list-sessions-query.js +53 -11
- package/dist/server.d.ts +15 -7
- package/dist/server.js +14 -7
- package/package.json +20 -17
- package/src/components/auth/auth-context.tsx +7 -0
- package/src/components/auth/auth-provider.tsx +19 -31
- package/src/components/auth/email/email-localization.tsx +5 -3
- package/src/components/auth/email/index.ts +1 -0
- package/src/components/auth/email/organization-invitation.tsx +454 -0
- package/src/components/mutation-invalidator.tsx +67 -0
- package/src/index.ts +3 -0
- package/src/lib/auth-client.ts +7 -0
- package/src/lib/auth-plugin.ts +17 -0
- package/src/lib/auth-server.ts +17 -1
- package/src/lib/settings-tab.ts +21 -0
- package/src/mutations/api-key/create-api-key-mutation.ts +34 -19
- package/src/mutations/api-key/delete-api-key-mutation.ts +36 -19
- package/src/mutations/auth/sign-in-email-mutation.ts +18 -22
- package/src/mutations/auth/sign-out-mutation.ts +19 -13
- package/src/mutations/auth/sign-up-email-mutation.ts +18 -22
- package/src/mutations/multi-session/revoke-multi-session-mutation.ts +31 -20
- package/src/mutations/multi-session/set-active-session-mutation.ts +25 -44
- package/src/mutations/organization/accept-invitation-mutation.ts +71 -0
- package/src/mutations/organization/cancel-invitation-mutation.ts +67 -0
- package/src/mutations/organization/check-slug-mutation.ts +55 -0
- package/src/mutations/organization/create-organization-mutation.ts +71 -0
- package/src/mutations/organization/delete-organization-mutation.ts +71 -0
- package/src/mutations/organization/index.ts +12 -0
- package/src/mutations/organization/invite-member-mutation.ts +81 -0
- package/src/mutations/organization/leave-organization-mutation.ts +74 -0
- package/src/mutations/organization/reject-invitation-mutation.ts +64 -0
- package/src/mutations/organization/remove-member-mutation.ts +67 -0
- package/src/mutations/organization/set-active-organization-mutation.ts +142 -0
- package/src/mutations/organization/update-member-role-mutation.ts +81 -0
- package/src/mutations/organization/update-organization-mutation.ts +84 -0
- package/src/mutations/passkey/add-passkey-mutation.ts +28 -17
- package/src/mutations/passkey/delete-passkey-mutation.ts +27 -17
- package/src/mutations/passkey/sign-in-passkey-mutation.ts +18 -21
- package/src/mutations/settings/change-email-mutation.ts +22 -18
- package/src/mutations/settings/delete-user-mutation.ts +2 -2
- package/src/mutations/settings/revoke-session-mutation.ts +24 -19
- package/src/mutations/settings/unlink-account-mutation.ts +24 -17
- package/src/mutations/settings/update-user-mutation.ts +18 -30
- package/src/mutations/username/is-username-available-mutation.ts +2 -2
- package/src/mutations/username/sign-in-username-mutation.ts +20 -23
- package/src/queries/api-key/list-api-keys-query.ts +20 -8
- package/src/queries/multi-session/list-device-sessions-query.ts +2 -2
- package/src/queries/organization/active-organization-query.ts +140 -0
- package/src/queries/organization/full-organization-query.ts +113 -0
- package/src/queries/organization/has-permission-query.ts +124 -0
- package/src/queries/organization/index.ts +7 -0
- package/src/queries/organization/list-invitations-query.ts +133 -0
- package/src/queries/organization/list-members-query.ts +133 -0
- package/src/queries/organization/list-organizations-query.ts +122 -0
- package/src/queries/organization/list-user-invitations-query.ts +122 -0
- package/src/queries/passkey/list-passkeys-query.ts +2 -2
- package/src/server/queries/api-key/list-api-keys-query.ts +94 -0
- package/src/server/queries/multi-session/list-device-sessions-query.ts +2 -2
- package/src/server/queries/organization/active-organization-query.ts +92 -0
- package/src/server/queries/organization/full-organization-query.ts +64 -0
- package/src/server/queries/organization/has-permission-query.ts +66 -0
- package/src/server/queries/organization/list-invitations-query.ts +81 -0
- package/src/server/queries/organization/list-members-query.ts +75 -0
- package/src/server/queries/organization/list-organizations-query.ts +67 -0
- package/src/server/queries/organization/list-user-invitations-query.ts +68 -0
- package/src/server/queries/passkey/list-passkeys-query.ts +2 -2
- package/src/server.ts +8 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import {
|
|
2
|
+
organizationMutationKeys,
|
|
3
|
+
organizationQueryKeys
|
|
4
|
+
} from "@better-auth-ui/core/plugins"
|
|
5
|
+
import {
|
|
6
|
+
mutationOptions,
|
|
7
|
+
type QueryClient,
|
|
8
|
+
useMutation
|
|
9
|
+
} from "@tanstack/react-query"
|
|
10
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
11
|
+
|
|
12
|
+
import type { OrganizationAuthClient } from "../../lib/auth-client"
|
|
13
|
+
import { useSession } from "../../queries/auth/session-query"
|
|
14
|
+
|
|
15
|
+
export type RemoveMemberParams<TAuthClient extends OrganizationAuthClient> =
|
|
16
|
+
Parameters<TAuthClient["organization"]["removeMember"]>[0]
|
|
17
|
+
|
|
18
|
+
export type RemoveMemberOptions<TAuthClient extends OrganizationAuthClient> =
|
|
19
|
+
Omit<
|
|
20
|
+
ReturnType<typeof removeMemberOptions<TAuthClient>>,
|
|
21
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
22
|
+
>
|
|
23
|
+
|
|
24
|
+
export function removeMemberOptions<TAuthClient extends OrganizationAuthClient>(
|
|
25
|
+
authClient: TAuthClient
|
|
26
|
+
) {
|
|
27
|
+
const mutationKey = organizationMutationKeys.removeMember
|
|
28
|
+
|
|
29
|
+
const mutationFn = (params: RemoveMemberParams<TAuthClient>) =>
|
|
30
|
+
authClient.organization.removeMember({
|
|
31
|
+
...params,
|
|
32
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
return mutationOptions<
|
|
36
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
37
|
+
BetterFetchError,
|
|
38
|
+
Parameters<typeof mutationFn>[0]
|
|
39
|
+
>({
|
|
40
|
+
mutationKey,
|
|
41
|
+
mutationFn
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function useRemoveMember<TAuthClient extends OrganizationAuthClient>(
|
|
46
|
+
authClient: TAuthClient,
|
|
47
|
+
options?: RemoveMemberOptions<TAuthClient>,
|
|
48
|
+
queryClient?: QueryClient
|
|
49
|
+
) {
|
|
50
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
51
|
+
const userId = session?.user.id
|
|
52
|
+
|
|
53
|
+
return useMutation(
|
|
54
|
+
{
|
|
55
|
+
...removeMemberOptions(authClient),
|
|
56
|
+
...options,
|
|
57
|
+
meta: {
|
|
58
|
+
awaits: [
|
|
59
|
+
organizationQueryKeys.members.all(userId),
|
|
60
|
+
organizationQueryKeys.fullDetails(userId)
|
|
61
|
+
],
|
|
62
|
+
invalidates: [organizationQueryKeys.lists(userId)]
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
queryClient
|
|
66
|
+
)
|
|
67
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import {
|
|
2
|
+
organizationMutationKeys,
|
|
3
|
+
organizationQueryKeys
|
|
4
|
+
} from "@better-auth-ui/core/plugins"
|
|
5
|
+
import {
|
|
6
|
+
mutationOptions,
|
|
7
|
+
type QueryClient,
|
|
8
|
+
useMutation
|
|
9
|
+
} from "@tanstack/react-query"
|
|
10
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
11
|
+
|
|
12
|
+
import type { OrganizationAuthClient } from "../../lib/auth-client"
|
|
13
|
+
import { useSession } from "../../queries/auth/session-query"
|
|
14
|
+
import { useListOrganizations } from "../../queries/organization"
|
|
15
|
+
|
|
16
|
+
export type SetActiveOrganizationParams<
|
|
17
|
+
TAuthClient extends OrganizationAuthClient
|
|
18
|
+
> = Parameters<TAuthClient["organization"]["setActive"]>[0]
|
|
19
|
+
|
|
20
|
+
export type SetActiveOrganizationOptions<
|
|
21
|
+
TAuthClient extends OrganizationAuthClient
|
|
22
|
+
> = Omit<
|
|
23
|
+
ReturnType<typeof setActiveOrganizationOptions<TAuthClient>>,
|
|
24
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
25
|
+
>
|
|
26
|
+
|
|
27
|
+
export function setActiveOrganizationOptions<
|
|
28
|
+
TAuthClient extends OrganizationAuthClient
|
|
29
|
+
>(authClient: TAuthClient) {
|
|
30
|
+
const mutationKey = organizationMutationKeys.setActive
|
|
31
|
+
|
|
32
|
+
const mutationFn = (params: SetActiveOrganizationParams<TAuthClient>) =>
|
|
33
|
+
authClient.organization.setActive({
|
|
34
|
+
...params,
|
|
35
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
return mutationOptions<
|
|
39
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
40
|
+
BetterFetchError,
|
|
41
|
+
Parameters<typeof mutationFn>[0]
|
|
42
|
+
>({
|
|
43
|
+
mutationKey,
|
|
44
|
+
mutationFn
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function useSetActiveOrganization<
|
|
49
|
+
TAuthClient extends OrganizationAuthClient
|
|
50
|
+
>(
|
|
51
|
+
authClient: TAuthClient,
|
|
52
|
+
options?: SetActiveOrganizationOptions<TAuthClient>,
|
|
53
|
+
queryClient?: QueryClient
|
|
54
|
+
) {
|
|
55
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
56
|
+
const userId = session?.user.id
|
|
57
|
+
const { data: organizations } = useListOrganizations(
|
|
58
|
+
authClient,
|
|
59
|
+
undefined,
|
|
60
|
+
queryClient
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
return useMutation(
|
|
64
|
+
{
|
|
65
|
+
...setActiveOrganizationOptions(authClient),
|
|
66
|
+
...options,
|
|
67
|
+
onMutate: async (variables, context) => {
|
|
68
|
+
// Cancel any outgoing refetches across every slug-partitioned
|
|
69
|
+
// active-organization cache entry so they don't overwrite our
|
|
70
|
+
// optimistic update.
|
|
71
|
+
await context.client.cancelQueries({
|
|
72
|
+
queryKey: organizationQueryKeys.activeOrganizations(userId)
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
// Snapshot every slug-partitioned variant so the rollback hits
|
|
76
|
+
// whichever cache entry the UI is actually subscribed to (the
|
|
77
|
+
// entry's key is `[..., 'active', { organizationSlug }]` when the
|
|
78
|
+
// plugin's slug option is set, and `[..., 'active', null]`
|
|
79
|
+
// otherwise).
|
|
80
|
+
const previousOrganizations = context.client.getQueriesData({
|
|
81
|
+
queryKey: organizationQueryKeys.activeOrganizations(userId)
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
// Optimistically update to the new value
|
|
85
|
+
if (variables?.organizationId === null) {
|
|
86
|
+
context.client.setQueriesData(
|
|
87
|
+
{ queryKey: organizationQueryKeys.activeOrganizations(userId) },
|
|
88
|
+
null
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
return { previousOrganizations }
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const newOrganization = organizations?.find(
|
|
95
|
+
(organization) =>
|
|
96
|
+
(variables?.organizationId !== undefined &&
|
|
97
|
+
organization.id === variables.organizationId) ||
|
|
98
|
+
(variables?.organizationSlug !== undefined &&
|
|
99
|
+
organization.slug === variables.organizationSlug)
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
if (newOrganization) {
|
|
103
|
+
context.client.setQueriesData(
|
|
104
|
+
{ queryKey: organizationQueryKeys.activeOrganizations(userId) },
|
|
105
|
+
newOrganization
|
|
106
|
+
)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return { previousOrganizations }
|
|
110
|
+
},
|
|
111
|
+
// If the mutation fails,
|
|
112
|
+
// use the result returned from onMutate to roll back
|
|
113
|
+
onError: (error, variables, onMutateResult, context) => {
|
|
114
|
+
const previousOrganizations = onMutateResult?.previousOrganizations
|
|
115
|
+
|
|
116
|
+
if (previousOrganizations?.length && error.error) {
|
|
117
|
+
for (const [queryKey, data] of previousOrganizations) {
|
|
118
|
+
context.client.setQueryData(queryKey, data)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return options?.onError?.(error, variables, onMutateResult, context)
|
|
123
|
+
},
|
|
124
|
+
// Always refetch after error or success — invalidate every
|
|
125
|
+
// slug-partitioned variant via the broader prefix.
|
|
126
|
+
onSettled: async (data, error, variables, onMutateResult, context) => {
|
|
127
|
+
await context.client.invalidateQueries({
|
|
128
|
+
queryKey: organizationQueryKeys.activeOrganizations(userId)
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
return options?.onSettled?.(
|
|
132
|
+
data,
|
|
133
|
+
error,
|
|
134
|
+
variables,
|
|
135
|
+
onMutateResult,
|
|
136
|
+
context
|
|
137
|
+
)
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
queryClient
|
|
141
|
+
)
|
|
142
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import {
|
|
2
|
+
organizationMutationKeys,
|
|
3
|
+
organizationQueryKeys
|
|
4
|
+
} from "@better-auth-ui/core/plugins"
|
|
5
|
+
import {
|
|
6
|
+
mutationOptions,
|
|
7
|
+
type QueryClient,
|
|
8
|
+
useMutation
|
|
9
|
+
} from "@tanstack/react-query"
|
|
10
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
11
|
+
|
|
12
|
+
import type { OrganizationAuthClient } from "../../lib/auth-client"
|
|
13
|
+
import { useSession } from "../../queries/auth/session-query"
|
|
14
|
+
import { useActiveOrganization } from "../../queries/organization"
|
|
15
|
+
|
|
16
|
+
export type UpdateMemberRoleParams<TAuthClient extends OrganizationAuthClient> =
|
|
17
|
+
Parameters<TAuthClient["organization"]["updateMemberRole"]>[0]
|
|
18
|
+
|
|
19
|
+
export type UpdateMemberRoleOptions<
|
|
20
|
+
TAuthClient extends OrganizationAuthClient
|
|
21
|
+
> = Omit<
|
|
22
|
+
ReturnType<typeof updateMemberRoleOptions<TAuthClient>>,
|
|
23
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
export function updateMemberRoleOptions<
|
|
27
|
+
TAuthClient extends OrganizationAuthClient
|
|
28
|
+
>(authClient: TAuthClient) {
|
|
29
|
+
const mutationKey = organizationMutationKeys.updateMemberRole
|
|
30
|
+
|
|
31
|
+
const mutationFn = (params: UpdateMemberRoleParams<TAuthClient>) =>
|
|
32
|
+
authClient.organization.updateMemberRole({
|
|
33
|
+
...params,
|
|
34
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
return mutationOptions<
|
|
38
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
39
|
+
BetterFetchError,
|
|
40
|
+
Parameters<typeof mutationFn>[0]
|
|
41
|
+
>({
|
|
42
|
+
mutationKey,
|
|
43
|
+
mutationFn
|
|
44
|
+
})
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function useUpdateMemberRole<TAuthClient extends OrganizationAuthClient>(
|
|
48
|
+
authClient: TAuthClient,
|
|
49
|
+
options?: UpdateMemberRoleOptions<TAuthClient>,
|
|
50
|
+
queryClient?: QueryClient
|
|
51
|
+
) {
|
|
52
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
53
|
+
const userId = session?.user.id
|
|
54
|
+
|
|
55
|
+
const { data: activeOrganization } = useActiveOrganization(
|
|
56
|
+
authClient,
|
|
57
|
+
undefined,
|
|
58
|
+
queryClient
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
return useMutation(
|
|
62
|
+
{
|
|
63
|
+
...updateMemberRoleOptions(authClient),
|
|
64
|
+
...options,
|
|
65
|
+
mutationFn: (params: UpdateMemberRoleParams<TAuthClient>) =>
|
|
66
|
+
authClient.organization.updateMemberRole({
|
|
67
|
+
...params,
|
|
68
|
+
organizationId: params?.organizationId ?? activeOrganization?.id,
|
|
69
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
70
|
+
}),
|
|
71
|
+
meta: {
|
|
72
|
+
awaits: [
|
|
73
|
+
organizationQueryKeys.members.all(userId),
|
|
74
|
+
organizationQueryKeys.fullDetails(userId)
|
|
75
|
+
],
|
|
76
|
+
invalidates: [organizationQueryKeys.permissions.all(userId)]
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
queryClient
|
|
80
|
+
)
|
|
81
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import {
|
|
2
|
+
organizationMutationKeys,
|
|
3
|
+
organizationQueryKeys
|
|
4
|
+
} from "@better-auth-ui/core/plugins"
|
|
5
|
+
import {
|
|
6
|
+
mutationOptions,
|
|
7
|
+
type QueryClient,
|
|
8
|
+
useMutation
|
|
9
|
+
} from "@tanstack/react-query"
|
|
10
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
11
|
+
|
|
12
|
+
import type { OrganizationAuthClient } from "../../lib/auth-client"
|
|
13
|
+
import { useSession } from "../../queries/auth/session-query"
|
|
14
|
+
import { useActiveOrganization } from "../../queries/organization"
|
|
15
|
+
|
|
16
|
+
export type UpdateOrganizationParams<
|
|
17
|
+
TAuthClient extends OrganizationAuthClient
|
|
18
|
+
> = Parameters<TAuthClient["organization"]["update"]>[0]
|
|
19
|
+
|
|
20
|
+
export type UpdateOrganizationOptions<
|
|
21
|
+
TAuthClient extends OrganizationAuthClient
|
|
22
|
+
> = Omit<
|
|
23
|
+
ReturnType<typeof updateOrganizationOptions<TAuthClient>>,
|
|
24
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
25
|
+
>
|
|
26
|
+
|
|
27
|
+
export function updateOrganizationOptions<
|
|
28
|
+
TAuthClient extends OrganizationAuthClient
|
|
29
|
+
>(authClient: TAuthClient) {
|
|
30
|
+
const mutationKey = organizationMutationKeys.update
|
|
31
|
+
|
|
32
|
+
const mutationFn = (params: UpdateOrganizationParams<TAuthClient>) =>
|
|
33
|
+
authClient.organization.update({
|
|
34
|
+
...params,
|
|
35
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
return mutationOptions<
|
|
39
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
40
|
+
BetterFetchError,
|
|
41
|
+
Parameters<typeof mutationFn>[0]
|
|
42
|
+
>({
|
|
43
|
+
mutationKey,
|
|
44
|
+
mutationFn
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function useUpdateOrganization<
|
|
49
|
+
TAuthClient extends OrganizationAuthClient
|
|
50
|
+
>(
|
|
51
|
+
authClient: TAuthClient,
|
|
52
|
+
options?: UpdateOrganizationOptions<TAuthClient>,
|
|
53
|
+
queryClient?: QueryClient
|
|
54
|
+
) {
|
|
55
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
56
|
+
const userId = session?.user.id
|
|
57
|
+
|
|
58
|
+
const { data: activeOrganization } = useActiveOrganization(
|
|
59
|
+
authClient,
|
|
60
|
+
undefined,
|
|
61
|
+
queryClient
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
return useMutation(
|
|
65
|
+
{
|
|
66
|
+
...updateOrganizationOptions(authClient),
|
|
67
|
+
...options,
|
|
68
|
+
mutationFn: (params: UpdateOrganizationParams<TAuthClient>) =>
|
|
69
|
+
authClient.organization.update({
|
|
70
|
+
...params,
|
|
71
|
+
organizationId: params?.organizationId ?? activeOrganization?.id,
|
|
72
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
73
|
+
}),
|
|
74
|
+
meta: {
|
|
75
|
+
awaits: [
|
|
76
|
+
organizationQueryKeys.lists(userId),
|
|
77
|
+
organizationQueryKeys.fullDetails(userId),
|
|
78
|
+
organizationQueryKeys.activeOrganizations(userId)
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
queryClient
|
|
83
|
+
)
|
|
84
|
+
}
|
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
passkeyMutationKeys,
|
|
3
|
+
passkeyQueryKeys
|
|
4
|
+
} from "@better-auth-ui/core/plugins"
|
|
5
|
+
import {
|
|
6
|
+
mutationOptions,
|
|
7
|
+
type QueryClient,
|
|
8
|
+
useMutation
|
|
9
|
+
} from "@tanstack/react-query"
|
|
3
10
|
import type { BetterFetchError } from "better-auth/react"
|
|
11
|
+
|
|
4
12
|
import type { PasskeyAuthClient } from "../../lib/auth-client"
|
|
5
|
-
import {
|
|
13
|
+
import { useSession } from "../../queries/auth/session-query"
|
|
6
14
|
|
|
7
15
|
export type AddPasskeyParams<TAuthClient extends PasskeyAuthClient> =
|
|
8
16
|
Parameters<TAuthClient["passkey"]["addPasskey"]>[0]
|
|
9
17
|
|
|
10
18
|
export type AddPasskeyOptions<TAuthClient extends PasskeyAuthClient> = Omit<
|
|
11
19
|
ReturnType<typeof addPasskeyOptions<TAuthClient>>,
|
|
12
|
-
"mutationKey" | "mutationFn"
|
|
20
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
13
21
|
>
|
|
14
22
|
|
|
15
23
|
/**
|
|
@@ -42,25 +50,28 @@ export function addPasskeyOptions<TAuthClient extends PasskeyAuthClient>(
|
|
|
42
50
|
/**
|
|
43
51
|
* Create a mutation for registering a new passkey.
|
|
44
52
|
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* `onSuccess`, `onError`, and `retry`.
|
|
53
|
+
* On success, `MutationInvalidator` awaits invalidation of the user's
|
|
54
|
+
* passkey list (see `meta.awaits`).
|
|
48
55
|
*
|
|
49
56
|
* @param authClient - The Better Auth client with the passkey plugin.
|
|
50
57
|
* @param options - React Query options forwarded to `useMutation`.
|
|
51
58
|
*/
|
|
52
59
|
export function useAddPasskey<TAuthClient extends PasskeyAuthClient>(
|
|
53
60
|
authClient: TAuthClient,
|
|
54
|
-
options?: AddPasskeyOptions<TAuthClient
|
|
61
|
+
options?: AddPasskeyOptions<TAuthClient>,
|
|
62
|
+
queryClient?: QueryClient
|
|
55
63
|
) {
|
|
56
|
-
const {
|
|
64
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
65
|
+
const userId = session?.user.id
|
|
57
66
|
|
|
58
|
-
return useMutation(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
67
|
+
return useMutation(
|
|
68
|
+
{
|
|
69
|
+
...addPasskeyOptions(authClient),
|
|
70
|
+
...options,
|
|
71
|
+
meta: {
|
|
72
|
+
awaits: [passkeyQueryKeys.lists(userId)]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
queryClient
|
|
76
|
+
)
|
|
66
77
|
}
|
|
@@ -1,16 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
passkeyMutationKeys,
|
|
3
|
+
passkeyQueryKeys
|
|
4
|
+
} from "@better-auth-ui/core/plugins"
|
|
5
|
+
import {
|
|
6
|
+
mutationOptions,
|
|
7
|
+
type QueryClient,
|
|
8
|
+
useMutation
|
|
9
|
+
} from "@tanstack/react-query"
|
|
3
10
|
import type { BetterFetchError } from "better-auth/react"
|
|
4
11
|
|
|
5
12
|
import type { PasskeyAuthClient } from "../../lib/auth-client"
|
|
6
|
-
import {
|
|
13
|
+
import { useSession } from "../../queries/auth/session-query"
|
|
7
14
|
|
|
8
15
|
export type DeletePasskeyParams<TAuthClient extends PasskeyAuthClient> =
|
|
9
16
|
Parameters<TAuthClient["passkey"]["deletePasskey"]>[0]
|
|
10
17
|
|
|
11
18
|
export type DeletePasskeyOptions<TAuthClient extends PasskeyAuthClient> = Omit<
|
|
12
19
|
ReturnType<typeof deletePasskeyOptions<TAuthClient>>,
|
|
13
|
-
"mutationKey" | "mutationFn"
|
|
20
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
14
21
|
>
|
|
15
22
|
|
|
16
23
|
/**
|
|
@@ -42,25 +49,28 @@ export function deletePasskeyOptions<TAuthClient extends PasskeyAuthClient>(
|
|
|
42
49
|
/**
|
|
43
50
|
* Create a mutation for deleting a passkey.
|
|
44
51
|
*
|
|
45
|
-
*
|
|
46
|
-
* list
|
|
47
|
-
* `onSuccess`, `onError`, and `retry`.
|
|
52
|
+
* On success, `MutationInvalidator` awaits invalidation of the user's
|
|
53
|
+
* passkey list (see `meta.awaits`).
|
|
48
54
|
*
|
|
49
55
|
* @param authClient - The Better Auth client with the passkey plugin.
|
|
50
56
|
* @param options - React Query options forwarded to `useMutation`.
|
|
51
57
|
*/
|
|
52
58
|
export function useDeletePasskey<TAuthClient extends PasskeyAuthClient>(
|
|
53
59
|
authClient: TAuthClient,
|
|
54
|
-
options?: DeletePasskeyOptions<TAuthClient
|
|
60
|
+
options?: DeletePasskeyOptions<TAuthClient>,
|
|
61
|
+
queryClient?: QueryClient
|
|
55
62
|
) {
|
|
56
|
-
const {
|
|
63
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
64
|
+
const userId = session?.user.id
|
|
57
65
|
|
|
58
|
-
return useMutation(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
return useMutation(
|
|
67
|
+
{
|
|
68
|
+
...deletePasskeyOptions(authClient),
|
|
69
|
+
...options,
|
|
70
|
+
meta: {
|
|
71
|
+
awaits: [passkeyQueryKeys.lists(userId)]
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
queryClient
|
|
75
|
+
)
|
|
66
76
|
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
+
import { authQueryKeys } from "@better-auth-ui/core"
|
|
1
2
|
import { passkeyMutationKeys } from "@better-auth-ui/core/plugins"
|
|
2
3
|
import {
|
|
3
4
|
mutationOptions,
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
type QueryClient,
|
|
6
|
+
useMutation
|
|
6
7
|
} from "@tanstack/react-query"
|
|
7
8
|
import type { BetterFetchError } from "better-auth/react"
|
|
8
9
|
|
|
9
10
|
import type { PasskeyAuthClient } from "../../lib/auth-client"
|
|
10
|
-
import { sessionOptions } from "../../queries/auth/session-query"
|
|
11
11
|
|
|
12
12
|
export type SignInPasskeyParams<TAuthClient extends PasskeyAuthClient> =
|
|
13
13
|
Parameters<TAuthClient["signIn"]["passkey"]>[0]
|
|
14
14
|
|
|
15
15
|
export type SignInPasskeyOptions<TAuthClient extends PasskeyAuthClient> = Omit<
|
|
16
16
|
ReturnType<typeof signInPasskeyOptions<TAuthClient>>,
|
|
17
|
-
"mutationKey" | "mutationFn"
|
|
17
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
18
18
|
>
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -47,28 +47,25 @@ export function signInPasskeyOptions<TAuthClient extends PasskeyAuthClient>(
|
|
|
47
47
|
/**
|
|
48
48
|
* Create a mutation for passkey sign-in.
|
|
49
49
|
*
|
|
50
|
-
*
|
|
51
|
-
* the new session is refetched
|
|
52
|
-
* such as `onSuccess`, `onError`, and `retry`.
|
|
50
|
+
* On success, `MutationInvalidator` awaits invalidation of the session
|
|
51
|
+
* query so the new session is refetched (see `meta.awaits`).
|
|
53
52
|
*
|
|
54
53
|
* @param authClient - The Better Auth client with the passkey plugin.
|
|
55
54
|
* @param options - React Query options forwarded to `useMutation`.
|
|
56
55
|
*/
|
|
57
56
|
export function useSignInPasskey<TAuthClient extends PasskeyAuthClient>(
|
|
58
57
|
authClient: TAuthClient,
|
|
59
|
-
options?: SignInPasskeyOptions<TAuthClient
|
|
58
|
+
options?: SignInPasskeyOptions<TAuthClient>,
|
|
59
|
+
queryClient?: QueryClient
|
|
60
60
|
) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
await options?.onSuccess?.(...args)
|
|
72
|
-
}
|
|
73
|
-
})
|
|
61
|
+
return useMutation(
|
|
62
|
+
{
|
|
63
|
+
...signInPasskeyOptions(authClient),
|
|
64
|
+
...options,
|
|
65
|
+
meta: {
|
|
66
|
+
awaits: [authQueryKeys.session]
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
queryClient
|
|
70
|
+
)
|
|
74
71
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { authMutationKeys } from "@better-auth-ui/core"
|
|
2
|
-
import {
|
|
1
|
+
import { authMutationKeys, authQueryKeys } from "@better-auth-ui/core"
|
|
2
|
+
import {
|
|
3
|
+
mutationOptions,
|
|
4
|
+
type QueryClient,
|
|
5
|
+
useMutation
|
|
6
|
+
} from "@tanstack/react-query"
|
|
3
7
|
import type { BetterFetchError } from "better-auth/react"
|
|
4
8
|
|
|
5
9
|
import type { AuthClient } from "../../lib/auth-client"
|
|
6
|
-
import { useSession } from "../../queries/auth/session-query"
|
|
7
10
|
|
|
8
11
|
export type ChangeEmailParams<TAuthClient extends AuthClient> = Parameters<
|
|
9
12
|
TAuthClient["changeEmail"]
|
|
@@ -11,7 +14,7 @@ export type ChangeEmailParams<TAuthClient extends AuthClient> = Parameters<
|
|
|
11
14
|
|
|
12
15
|
export type ChangeEmailOptions<TAuthClient extends AuthClient> = Omit<
|
|
13
16
|
ReturnType<typeof changeEmailOptions<TAuthClient>>,
|
|
14
|
-
"mutationKey" | "mutationFn"
|
|
17
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
15
18
|
>
|
|
16
19
|
|
|
17
20
|
/**
|
|
@@ -43,25 +46,26 @@ export function changeEmailOptions<TAuthClient extends AuthClient>(
|
|
|
43
46
|
/**
|
|
44
47
|
* Create a mutation for changing the current user's email address.
|
|
45
48
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
+
* On success, `MutationInvalidator` awaits invalidation of the session
|
|
50
|
+
* query so the new email is reflected on the user object (see
|
|
51
|
+
* `meta.awaits`).
|
|
49
52
|
*
|
|
50
53
|
* @param authClient - The Better Auth client.
|
|
51
54
|
* @param options - React Query options forwarded to `useMutation`.
|
|
52
55
|
*/
|
|
53
56
|
export function useChangeEmail<TAuthClient extends AuthClient>(
|
|
54
57
|
authClient: TAuthClient,
|
|
55
|
-
options?: ChangeEmailOptions<TAuthClient
|
|
58
|
+
options?: ChangeEmailOptions<TAuthClient>,
|
|
59
|
+
queryClient?: QueryClient
|
|
56
60
|
) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
return useMutation(
|
|
62
|
+
{
|
|
63
|
+
...changeEmailOptions(authClient),
|
|
64
|
+
...options,
|
|
65
|
+
meta: {
|
|
66
|
+
awaits: [authQueryKeys.session]
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
queryClient
|
|
70
|
+
)
|
|
67
71
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deleteUserMutationKeys } from "@better-auth-ui/core/plugins"
|
|
2
2
|
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
3
|
import type { BetterFetchError } from "better-auth/react"
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ export type DeleteUserOptions<TAuthClient extends AuthClient> = Omit<
|
|
|
21
21
|
export function deleteUserOptions<TAuthClient extends AuthClient>(
|
|
22
22
|
authClient: TAuthClient
|
|
23
23
|
) {
|
|
24
|
-
const mutationKey =
|
|
24
|
+
const mutationKey = deleteUserMutationKeys.deleteUser
|
|
25
25
|
|
|
26
26
|
const mutationFn = (params: DeleteUserParams<TAuthClient>) =>
|
|
27
27
|
authClient.deleteUser({
|