@better-auth-ui/react 1.6.8 → 1.6.10
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/email/email-localization.d.ts +11 -3
- package/dist/components/auth/email/index.d.ts +1 -0
- package/dist/components/auth/email/organization-invitation.d.ts +121 -0
- package/dist/components/mutation-invalidator.d.ts +1 -0
- package/dist/email.js +1348 -11
- package/dist/hooks/auth/use-authenticate.d.ts +1 -1
- package/dist/hooks/auth/use-user.d.ts +12 -12
- package/dist/hooks/use-auth-query.d.ts +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2469 -79
- package/dist/lib/auth-client.d.ts +4 -1
- package/dist/lib/auth-plugin.d.ts +16 -0
- package/dist/lib/auth-server.d.ts +8 -1
- package/dist/lib/settings-tab.d.ts +19 -0
- package/dist/mutations/api-key/create-api-key-mutation.d.ts +6 -4
- package/dist/mutations/api-key/delete-api-key-mutation.d.ts +7 -3
- package/dist/mutations/auth/sign-in-email-mutation.d.ts +5 -5
- package/dist/mutations/auth/sign-out-mutation.d.ts +6 -4
- package/dist/mutations/auth/sign-up-email-mutation.d.ts +5 -5
- package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +5 -5
- package/dist/mutations/multi-session/set-active-session-mutation.d.ts +5 -6
- package/dist/mutations/organization/accept-invitation-mutation.d.ts +43 -0
- package/dist/mutations/organization/cancel-invitation-mutation.d.ts +25 -0
- package/dist/mutations/organization/check-slug-mutation.d.ts +21 -0
- package/dist/mutations/organization/create-organization-mutation.d.ts +39 -0
- package/dist/mutations/organization/delete-organization-mutation.d.ts +21 -0
- package/dist/mutations/organization/index.d.ts +12 -0
- package/dist/mutations/organization/invite-member-mutation.d.ts +43 -0
- package/dist/mutations/organization/leave-organization-mutation.d.ts +65 -0
- package/dist/mutations/organization/reject-invitation-mutation.d.ts +31 -0
- package/dist/mutations/organization/remove-member-mutation.d.ts +35 -0
- package/dist/mutations/organization/set-active-organization-mutation.d.ts +71 -0
- package/dist/mutations/organization/update-member-role-mutation.d.ts +31 -0
- package/dist/mutations/organization/update-organization-mutation.d.ts +21 -0
- package/dist/mutations/passkey/add-passkey-mutation.d.ts +5 -5
- package/dist/mutations/passkey/delete-passkey-mutation.d.ts +5 -5
- package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +5 -5
- package/dist/mutations/settings/change-email-mutation.d.ts +6 -5
- package/dist/mutations/settings/revoke-session-mutation.d.ts +5 -5
- package/dist/mutations/settings/unlink-account-mutation.d.ts +5 -5
- package/dist/mutations/settings/update-user-mutation.d.ts +5 -5
- package/dist/mutations/username/sign-in-username-mutation.d.ts +5 -5
- package/dist/plugins/captcha-plugin.d.ts +2 -2
- package/dist/plugins.js +27 -2
- package/dist/queries/api-key/list-api-keys-query.d.ts +17 -8
- package/dist/queries/auth/session-query.d.ts +1 -1
- package/dist/queries/multi-session/list-device-sessions-query.d.ts +5 -5
- package/dist/queries/organization/active-organization-query.d.ts +39 -0
- package/dist/queries/organization/full-organization-query.d.ts +37 -0
- package/dist/queries/organization/has-permission-query.d.ts +21 -0
- package/dist/queries/organization/index.d.ts +7 -0
- package/dist/queries/organization/list-invitations-query.d.ts +29 -0
- package/dist/queries/organization/list-members-query.d.ts +61 -0
- package/dist/queries/organization/list-organizations-query.d.ts +22 -0
- package/dist/queries/organization/list-user-invitations-query.d.ts +29 -0
- package/dist/queries/passkey/list-passkeys-query.d.ts +5 -5
- package/dist/queries/settings/account-info-query.d.ts +1 -1
- package/dist/queries/settings/list-accounts-query.d.ts +1 -1
- package/dist/queries/settings/list-sessions-query.d.ts +1 -1
- package/dist/server/queries/api-key/list-api-keys-query.d.ts +83 -0
- package/dist/server/queries/multi-session/list-device-sessions-query.d.ts +4 -4
- package/dist/server/queries/organization/active-organization-query.d.ts +61 -0
- package/dist/server/queries/organization/full-organization-query.d.ts +42 -0
- package/dist/server/queries/organization/has-permission-query.d.ts +66 -0
- package/dist/server/queries/organization/list-invitations-query.d.ts +34 -0
- package/dist/server/queries/organization/list-members-query.d.ts +66 -0
- package/dist/server/queries/organization/list-organizations-query.d.ts +27 -0
- package/dist/server/queries/organization/list-user-invitations-query.d.ts +34 -0
- package/dist/server/queries/passkey/list-passkeys-query.d.ts +4 -4
- package/dist/server.d.ts +8 -0
- package/dist/server.js +131 -7
- package/dist/use-auth-plugin-ClcP84Uz.js +80 -0
- package/package.json +19 -16
- 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
- package/dist/components/auth/auth-provider.js +0 -44
- package/dist/components/auth/email/email-changed.js +0 -156
- package/dist/components/auth/email/email-localization.js +0 -19
- package/dist/components/auth/email/email-styles.js +0 -104
- package/dist/components/auth/email/email-verification.js +0 -140
- package/dist/components/auth/email/index.js +0 -9
- package/dist/components/auth/email/magic-link.js +0 -141
- package/dist/components/auth/email/new-device.js +0 -223
- package/dist/components/auth/email/otp-email.js +0 -129
- package/dist/components/auth/email/password-changed.js +0 -159
- package/dist/components/auth/email/reset-password.js +0 -140
- package/dist/components/auth/fetch-options-provider.js +0 -30
- package/dist/components/icons/apple.js +0 -17
- package/dist/components/icons/atlassian.js +0 -39
- package/dist/components/icons/cognito.js +0 -20
- package/dist/components/icons/discord.js +0 -17
- package/dist/components/icons/dropbox.js +0 -17
- package/dist/components/icons/facebook.js +0 -20
- package/dist/components/icons/figma.js +0 -35
- package/dist/components/icons/github.js +0 -17
- package/dist/components/icons/gitlab.js +0 -31
- package/dist/components/icons/google.js +0 -40
- package/dist/components/icons/huggingface.js +0 -39
- package/dist/components/icons/index.js +0 -35
- package/dist/components/icons/kakao.js +0 -17
- package/dist/components/icons/kick.js +0 -21
- package/dist/components/icons/line.js +0 -17
- package/dist/components/icons/linear.js +0 -17
- package/dist/components/icons/linkedin.js +0 -34
- package/dist/components/icons/microsoft.js +0 -31
- package/dist/components/icons/naver.js +0 -17
- package/dist/components/icons/notion.js +0 -17
- package/dist/components/icons/paybin.js +0 -33
- package/dist/components/icons/paypal.js +0 -31
- package/dist/components/icons/polar.js +0 -25
- package/dist/components/icons/railway.js +0 -17
- package/dist/components/icons/reddit.js +0 -22
- package/dist/components/icons/roblox.js +0 -18
- package/dist/components/icons/salesforce.js +0 -17
- package/dist/components/icons/slack.js +0 -31
- package/dist/components/icons/spotify.js +0 -17
- package/dist/components/icons/tiktok.js +0 -24
- package/dist/components/icons/twitch.js +0 -44
- package/dist/components/icons/vercel.js +0 -17
- package/dist/components/icons/vk.js +0 -17
- package/dist/components/icons/wechat.js +0 -17
- package/dist/components/icons/x.js +0 -17
- package/dist/components/icons/zoom.js +0 -70
- package/dist/components/settings/account/theme-preview.js +0 -289
- package/dist/hooks/auth/use-authenticate.js +0 -23
- package/dist/hooks/auth/use-user.js +0 -11
- package/dist/hooks/use-auth-mutation.js +0 -11
- package/dist/hooks/use-auth-plugin.js +0 -10
- package/dist/hooks/use-auth-query.js +0 -15
- package/dist/lib/provider-icons.js +0 -76
- package/dist/lib/utils.js +0 -8
- package/dist/mutations/api-key/create-api-key-mutation.js +0 -29
- package/dist/mutations/api-key/delete-api-key-mutation.js +0 -29
- package/dist/mutations/auth/request-password-reset-mutation.js +0 -24
- package/dist/mutations/auth/reset-password-mutation.js +0 -24
- package/dist/mutations/auth/send-verification-email-mutation.js +0 -24
- package/dist/mutations/auth/sign-in-email-mutation.js +0 -29
- package/dist/mutations/auth/sign-in-social-mutation.js +0 -24
- package/dist/mutations/auth/sign-out-mutation.js +0 -28
- package/dist/mutations/auth/sign-up-email-mutation.js +0 -29
- package/dist/mutations/auth-mutation-options.js +0 -19
- package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +0 -24
- package/dist/mutations/multi-session/revoke-multi-session-mutation.js +0 -29
- package/dist/mutations/multi-session/set-active-session-mutation.js +0 -31
- package/dist/mutations/passkey/add-passkey-mutation.js +0 -29
- package/dist/mutations/passkey/delete-passkey-mutation.js +0 -29
- package/dist/mutations/passkey/sign-in-passkey-mutation.js +0 -29
- package/dist/mutations/settings/change-email-mutation.js +0 -29
- package/dist/mutations/settings/change-password-mutation.js +0 -24
- package/dist/mutations/settings/delete-user-mutation.js +0 -24
- package/dist/mutations/settings/link-social-mutation.js +0 -24
- package/dist/mutations/settings/revoke-session-mutation.js +0 -29
- package/dist/mutations/settings/unlink-account-mutation.js +0 -29
- package/dist/mutations/settings/update-user-mutation.js +0 -35
- package/dist/mutations/username/is-username-available-mutation.js +0 -24
- package/dist/mutations/username/sign-in-username-mutation.js +0 -29
- package/dist/plugins/captcha-plugin.js +0 -29
- package/dist/queries/api-key/list-api-keys-query.js +0 -31
- package/dist/queries/auth/session-query.js +0 -30
- package/dist/queries/auth-query-options.js +0 -17
- package/dist/queries/multi-session/list-device-sessions-query.js +0 -31
- package/dist/queries/passkey/list-passkeys-query.js +0 -31
- package/dist/queries/settings/account-info-query.js +0 -31
- package/dist/queries/settings/list-accounts-query.js +0 -31
- package/dist/queries/settings/list-sessions-query.js +0 -31
- package/dist/server/queries/auth/session-query.js +0 -13
- package/dist/server/queries/multi-session/list-device-sessions-query.js +0 -12
- package/dist/server/queries/passkey/list-passkeys-query.js +0 -12
- package/dist/server/queries/settings/account-info-query.js +0 -12
- package/dist/server/queries/settings/list-accounts-query.js +0 -12
- package/dist/server/queries/settings/list-sessions-query.js +0 -12
|
@@ -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 CancelInvitationParams<TAuthClient extends OrganizationAuthClient> =
|
|
16
|
+
Parameters<TAuthClient["organization"]["cancelInvitation"]>[0]
|
|
17
|
+
|
|
18
|
+
export type CancelInvitationOptions<
|
|
19
|
+
TAuthClient extends OrganizationAuthClient
|
|
20
|
+
> = Omit<
|
|
21
|
+
ReturnType<typeof cancelInvitationOptions<TAuthClient>>,
|
|
22
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
23
|
+
>
|
|
24
|
+
|
|
25
|
+
export function cancelInvitationOptions<
|
|
26
|
+
TAuthClient extends OrganizationAuthClient
|
|
27
|
+
>(authClient: TAuthClient) {
|
|
28
|
+
const mutationKey = organizationMutationKeys.cancelInvitation
|
|
29
|
+
|
|
30
|
+
const mutationFn = (params: CancelInvitationParams<TAuthClient>) =>
|
|
31
|
+
authClient.organization.cancelInvitation({
|
|
32
|
+
...params,
|
|
33
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
return mutationOptions<
|
|
37
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
38
|
+
BetterFetchError,
|
|
39
|
+
Parameters<typeof mutationFn>[0]
|
|
40
|
+
>({
|
|
41
|
+
mutationKey,
|
|
42
|
+
mutationFn
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function useCancelInvitation<TAuthClient extends OrganizationAuthClient>(
|
|
47
|
+
authClient: TAuthClient,
|
|
48
|
+
options?: CancelInvitationOptions<TAuthClient>,
|
|
49
|
+
queryClient?: QueryClient
|
|
50
|
+
) {
|
|
51
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
52
|
+
const userId = session?.user.id
|
|
53
|
+
|
|
54
|
+
return useMutation(
|
|
55
|
+
{
|
|
56
|
+
...cancelInvitationOptions(authClient),
|
|
57
|
+
...options,
|
|
58
|
+
meta: {
|
|
59
|
+
awaits: [
|
|
60
|
+
organizationQueryKeys.invitations.all(userId),
|
|
61
|
+
organizationQueryKeys.fullDetails(userId)
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
queryClient
|
|
66
|
+
)
|
|
67
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { organizationMutationKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import { mutationOptions, useMutation } from "@tanstack/react-query"
|
|
3
|
+
import type { BetterFetchError } from "better-auth/react"
|
|
4
|
+
|
|
5
|
+
import type { OrganizationAuthClient } from "../../lib/auth-client"
|
|
6
|
+
|
|
7
|
+
export type CheckSlugParams<TAuthClient extends OrganizationAuthClient> =
|
|
8
|
+
Parameters<TAuthClient["organization"]["checkSlug"]>[0]
|
|
9
|
+
|
|
10
|
+
export type CheckSlugOptions<TAuthClient extends OrganizationAuthClient> = Omit<
|
|
11
|
+
ReturnType<typeof checkSlugOptions<TAuthClient>>,
|
|
12
|
+
"mutationKey" | "mutationFn"
|
|
13
|
+
>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Mutation options factory for checking organization slug availability.
|
|
17
|
+
*
|
|
18
|
+
* @param authClient - The Better Auth client.
|
|
19
|
+
*/
|
|
20
|
+
export function checkSlugOptions<TAuthClient extends OrganizationAuthClient>(
|
|
21
|
+
authClient: TAuthClient
|
|
22
|
+
) {
|
|
23
|
+
const mutationKey = organizationMutationKeys.checkSlug
|
|
24
|
+
|
|
25
|
+
const mutationFn = (params: CheckSlugParams<TAuthClient>) =>
|
|
26
|
+
authClient.organization.checkSlug({
|
|
27
|
+
...params,
|
|
28
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
return mutationOptions<
|
|
32
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
33
|
+
BetterFetchError,
|
|
34
|
+
Parameters<typeof mutationFn>[0]
|
|
35
|
+
>({
|
|
36
|
+
mutationKey,
|
|
37
|
+
mutationFn
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Create a mutation for checking whether an organization slug is available.
|
|
43
|
+
*
|
|
44
|
+
* @param authClient - The Better Auth client with the organization plugin.
|
|
45
|
+
* @param options - React Query options forwarded to `useMutation`.
|
|
46
|
+
*/
|
|
47
|
+
export function useCheckSlug<TAuthClient extends OrganizationAuthClient>(
|
|
48
|
+
authClient: TAuthClient,
|
|
49
|
+
options?: CheckSlugOptions<TAuthClient>
|
|
50
|
+
) {
|
|
51
|
+
return useMutation({
|
|
52
|
+
...checkSlugOptions(authClient),
|
|
53
|
+
...options
|
|
54
|
+
})
|
|
55
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
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 CreateOrganizationParams<
|
|
16
|
+
TAuthClient extends OrganizationAuthClient
|
|
17
|
+
> = Parameters<TAuthClient["organization"]["create"]>[0]
|
|
18
|
+
|
|
19
|
+
export type CreateOrganizationOptions<
|
|
20
|
+
TAuthClient extends OrganizationAuthClient
|
|
21
|
+
> = Omit<
|
|
22
|
+
ReturnType<typeof createOrganizationOptions<TAuthClient>>,
|
|
23
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
export function createOrganizationOptions<
|
|
27
|
+
TAuthClient extends OrganizationAuthClient
|
|
28
|
+
>(authClient: TAuthClient) {
|
|
29
|
+
const mutationKey = organizationMutationKeys.create
|
|
30
|
+
|
|
31
|
+
const mutationFn = (params: CreateOrganizationParams<TAuthClient>) =>
|
|
32
|
+
authClient.organization.create({
|
|
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 useCreateOrganization<
|
|
48
|
+
TAuthClient extends OrganizationAuthClient
|
|
49
|
+
>(
|
|
50
|
+
authClient: TAuthClient,
|
|
51
|
+
options?: CreateOrganizationOptions<TAuthClient>,
|
|
52
|
+
queryClient?: QueryClient
|
|
53
|
+
) {
|
|
54
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
55
|
+
const userId = session?.user.id
|
|
56
|
+
|
|
57
|
+
return useMutation(
|
|
58
|
+
{
|
|
59
|
+
...createOrganizationOptions(authClient),
|
|
60
|
+
...options,
|
|
61
|
+
meta: {
|
|
62
|
+
awaits: [organizationQueryKeys.lists(userId)],
|
|
63
|
+
invalidates: [
|
|
64
|
+
organizationQueryKeys.fullDetails(userId),
|
|
65
|
+
organizationQueryKeys.activeOrganizations(userId)
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
queryClient
|
|
70
|
+
)
|
|
71
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
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 DeleteOrganizationParams<
|
|
16
|
+
TAuthClient extends OrganizationAuthClient
|
|
17
|
+
> = Parameters<TAuthClient["organization"]["delete"]>[0]
|
|
18
|
+
|
|
19
|
+
export type DeleteOrganizationOptions<
|
|
20
|
+
TAuthClient extends OrganizationAuthClient
|
|
21
|
+
> = Omit<
|
|
22
|
+
ReturnType<typeof deleteOrganizationOptions<TAuthClient>>,
|
|
23
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
export function deleteOrganizationOptions<
|
|
27
|
+
TAuthClient extends OrganizationAuthClient
|
|
28
|
+
>(authClient: TAuthClient) {
|
|
29
|
+
const mutationKey = organizationMutationKeys.delete
|
|
30
|
+
|
|
31
|
+
const mutationFn = (params: DeleteOrganizationParams<TAuthClient>) =>
|
|
32
|
+
authClient.organization.delete({
|
|
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 useDeleteOrganization<
|
|
48
|
+
TAuthClient extends OrganizationAuthClient
|
|
49
|
+
>(
|
|
50
|
+
authClient: TAuthClient,
|
|
51
|
+
options?: DeleteOrganizationOptions<TAuthClient>,
|
|
52
|
+
queryClient?: QueryClient
|
|
53
|
+
) {
|
|
54
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
55
|
+
const userId = session?.user.id
|
|
56
|
+
|
|
57
|
+
return useMutation(
|
|
58
|
+
{
|
|
59
|
+
...deleteOrganizationOptions(authClient),
|
|
60
|
+
...options,
|
|
61
|
+
meta: {
|
|
62
|
+
awaits: [organizationQueryKeys.lists(userId)],
|
|
63
|
+
invalidates: [
|
|
64
|
+
organizationQueryKeys.fullDetails(userId),
|
|
65
|
+
organizationQueryKeys.activeOrganizations(userId)
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
queryClient
|
|
70
|
+
)
|
|
71
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from "./accept-invitation-mutation"
|
|
2
|
+
export * from "./cancel-invitation-mutation"
|
|
3
|
+
export * from "./check-slug-mutation"
|
|
4
|
+
export * from "./create-organization-mutation"
|
|
5
|
+
export * from "./delete-organization-mutation"
|
|
6
|
+
export * from "./invite-member-mutation"
|
|
7
|
+
export * from "./leave-organization-mutation"
|
|
8
|
+
export * from "./reject-invitation-mutation"
|
|
9
|
+
export * from "./remove-member-mutation"
|
|
10
|
+
export * from "./set-active-organization-mutation"
|
|
11
|
+
export * from "./update-member-role-mutation"
|
|
12
|
+
export * from "./update-organization-mutation"
|
|
@@ -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 InviteMemberParams<TAuthClient extends OrganizationAuthClient> =
|
|
17
|
+
Parameters<TAuthClient["organization"]["inviteMember"]>[0]
|
|
18
|
+
|
|
19
|
+
export type InviteMemberOptions<TAuthClient extends OrganizationAuthClient> =
|
|
20
|
+
Omit<
|
|
21
|
+
ReturnType<typeof inviteMemberOptions<TAuthClient>>,
|
|
22
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
23
|
+
>
|
|
24
|
+
|
|
25
|
+
export function inviteMemberOptions<TAuthClient extends OrganizationAuthClient>(
|
|
26
|
+
authClient: TAuthClient
|
|
27
|
+
) {
|
|
28
|
+
const mutationKey = organizationMutationKeys.inviteMember
|
|
29
|
+
|
|
30
|
+
const mutationFn = (params: InviteMemberParams<TAuthClient>) =>
|
|
31
|
+
authClient.organization.inviteMember({
|
|
32
|
+
...params,
|
|
33
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
return mutationOptions<
|
|
37
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
38
|
+
BetterFetchError,
|
|
39
|
+
Parameters<typeof mutationFn>[0]
|
|
40
|
+
>({
|
|
41
|
+
mutationKey,
|
|
42
|
+
mutationFn
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function useInviteMember<
|
|
47
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
48
|
+
>(
|
|
49
|
+
authClient: TAuthClient,
|
|
50
|
+
options?: InviteMemberOptions<TAuthClient>,
|
|
51
|
+
queryClient?: QueryClient
|
|
52
|
+
) {
|
|
53
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
54
|
+
const userId = session?.user.id
|
|
55
|
+
|
|
56
|
+
const { data: activeOrganization } = useActiveOrganization(
|
|
57
|
+
authClient,
|
|
58
|
+
undefined,
|
|
59
|
+
queryClient
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
return useMutation(
|
|
63
|
+
{
|
|
64
|
+
...inviteMemberOptions(authClient),
|
|
65
|
+
...options,
|
|
66
|
+
mutationFn: (params: InviteMemberParams<TAuthClient>) =>
|
|
67
|
+
authClient.organization.inviteMember({
|
|
68
|
+
...params,
|
|
69
|
+
organizationId: params?.organizationId ?? activeOrganization?.id,
|
|
70
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
71
|
+
}),
|
|
72
|
+
meta: {
|
|
73
|
+
awaits: [
|
|
74
|
+
organizationQueryKeys.invitations.all(userId),
|
|
75
|
+
organizationQueryKeys.fullDetails(userId)
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
queryClient
|
|
80
|
+
)
|
|
81
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
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 LeaveOrganizationParams<
|
|
16
|
+
TAuthClient extends OrganizationAuthClient
|
|
17
|
+
> = Parameters<TAuthClient["organization"]["leave"]>[0]
|
|
18
|
+
|
|
19
|
+
export type LeaveOrganizationOptions<
|
|
20
|
+
TAuthClient extends OrganizationAuthClient
|
|
21
|
+
> = Omit<
|
|
22
|
+
ReturnType<typeof leaveOrganizationOptions<TAuthClient>>,
|
|
23
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
export function leaveOrganizationOptions<
|
|
27
|
+
TAuthClient extends OrganizationAuthClient
|
|
28
|
+
>(authClient: TAuthClient) {
|
|
29
|
+
const mutationKey = organizationMutationKeys.leave
|
|
30
|
+
|
|
31
|
+
const mutationFn = (params: LeaveOrganizationParams<TAuthClient>) =>
|
|
32
|
+
authClient.organization.leave({
|
|
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 useLeaveOrganization<
|
|
48
|
+
TAuthClient extends OrganizationAuthClient
|
|
49
|
+
>(
|
|
50
|
+
authClient: TAuthClient,
|
|
51
|
+
options?: LeaveOrganizationOptions<TAuthClient>,
|
|
52
|
+
queryClient?: QueryClient
|
|
53
|
+
) {
|
|
54
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
55
|
+
const userId = session?.user.id
|
|
56
|
+
|
|
57
|
+
return useMutation(
|
|
58
|
+
{
|
|
59
|
+
...leaveOrganizationOptions(authClient),
|
|
60
|
+
...options,
|
|
61
|
+
meta: {
|
|
62
|
+
awaits: [
|
|
63
|
+
organizationQueryKeys.members.all(userId),
|
|
64
|
+
organizationQueryKeys.fullDetails(userId)
|
|
65
|
+
],
|
|
66
|
+
invalidates: [
|
|
67
|
+
organizationQueryKeys.lists(userId),
|
|
68
|
+
organizationQueryKeys.activeOrganizations(userId)
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
queryClient
|
|
73
|
+
)
|
|
74
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
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 RejectInvitationParams<TAuthClient extends OrganizationAuthClient> =
|
|
16
|
+
Parameters<TAuthClient["organization"]["rejectInvitation"]>[0]
|
|
17
|
+
|
|
18
|
+
export type RejectInvitationOptions<
|
|
19
|
+
TAuthClient extends OrganizationAuthClient
|
|
20
|
+
> = Omit<
|
|
21
|
+
ReturnType<typeof rejectInvitationOptions<TAuthClient>>,
|
|
22
|
+
"mutationKey" | "mutationFn" | "meta"
|
|
23
|
+
>
|
|
24
|
+
|
|
25
|
+
export function rejectInvitationOptions<
|
|
26
|
+
TAuthClient extends OrganizationAuthClient
|
|
27
|
+
>(authClient: TAuthClient) {
|
|
28
|
+
const mutationKey = organizationMutationKeys.rejectInvitation
|
|
29
|
+
|
|
30
|
+
const mutationFn = (params: RejectInvitationParams<TAuthClient>) =>
|
|
31
|
+
authClient.organization.rejectInvitation({
|
|
32
|
+
...params,
|
|
33
|
+
fetchOptions: { ...params?.fetchOptions, throw: true }
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
return mutationOptions<
|
|
37
|
+
Awaited<ReturnType<typeof mutationFn>>,
|
|
38
|
+
BetterFetchError,
|
|
39
|
+
Parameters<typeof mutationFn>[0]
|
|
40
|
+
>({
|
|
41
|
+
mutationKey,
|
|
42
|
+
mutationFn
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function useRejectInvitation<TAuthClient extends OrganizationAuthClient>(
|
|
47
|
+
authClient: TAuthClient,
|
|
48
|
+
options?: RejectInvitationOptions<TAuthClient>,
|
|
49
|
+
queryClient?: QueryClient
|
|
50
|
+
) {
|
|
51
|
+
const { data: session } = useSession(authClient, undefined, queryClient)
|
|
52
|
+
const userId = session?.user.id
|
|
53
|
+
|
|
54
|
+
return useMutation(
|
|
55
|
+
{
|
|
56
|
+
...rejectInvitationOptions(authClient),
|
|
57
|
+
...options,
|
|
58
|
+
meta: {
|
|
59
|
+
awaits: [organizationQueryKeys.userInvitations.all(userId)]
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
queryClient
|
|
63
|
+
)
|
|
64
|
+
}
|
|
@@ -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
|
+
}
|