@better-auth-ui/solid 1.6.19
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/email/email-changed.d.ts +59 -0
- package/dist/components/auth/email/email-changed.js +264 -0
- package/dist/components/auth/email/email-styles.d.ts +48 -0
- package/dist/components/auth/email/email-styles.js +107 -0
- package/dist/components/auth/email/email-verification.d.ts +51 -0
- package/dist/components/auth/email/email-verification.js +212 -0
- package/dist/components/auth/email/index.d.ts +9 -0
- package/dist/components/auth/email/magic-link.d.ts +53 -0
- package/dist/components/auth/email/magic-link.js +213 -0
- package/dist/components/auth/email/new-device.d.ts +77 -0
- package/dist/components/auth/email/new-device.js +326 -0
- package/dist/components/auth/email/organization-invitation.d.ts +70 -0
- package/dist/components/auth/email/organization-invitation.js +260 -0
- package/dist/components/auth/email/otp-email.d.ts +49 -0
- package/dist/components/auth/email/otp-email.js +191 -0
- package/dist/components/auth/email/password-changed.d.ts +56 -0
- package/dist/components/auth/email/password-changed.js +236 -0
- package/dist/components/auth/email/reset-password.d.ts +51 -0
- package/dist/components/auth/email/reset-password.js +212 -0
- package/dist/email.d.ts +18 -0
- package/dist/email.js +10 -0
- package/dist/hooks/auth/use-authenticate.d.ts +3 -0
- package/dist/hooks/auth/use-authenticate.js +18 -0
- package/dist/hooks/auth/use-sign-out.d.ts +2 -0
- package/dist/hooks/auth/use-sign-out.js +17 -0
- package/dist/hooks/auth/use-user.d.ts +213 -0
- package/dist/hooks/auth/use-user.js +13 -0
- package/dist/hooks/use-auth-mutation.d.ts +6 -0
- package/dist/hooks/use-auth-mutation.js +11 -0
- package/dist/hooks/use-auth-query.d.ts +5 -0
- package/dist/hooks/use-auth-query.js +17 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.js +68 -0
- package/dist/lib/auth-client.d.ts +26 -0
- package/dist/lib/auth-config.d.ts +12 -0
- package/dist/lib/auth-config.js +21 -0
- package/dist/lib/auth-plugin.d.ts +16 -0
- package/dist/lib/auth-provider.d.ts +12 -0
- package/dist/lib/auth-provider.js +36 -0
- package/dist/lib/auth-server.d.ts +16 -0
- package/dist/lib/auth-utils.d.ts +3 -0
- package/dist/lib/auth-utils.js +12 -0
- package/dist/lib/fetch-options-provider.d.ts +23 -0
- package/dist/lib/fetch-options-provider.js +29 -0
- package/dist/lib/mutation-invalidator.d.ts +11 -0
- package/dist/lib/mutation-invalidator.js +20 -0
- package/dist/lib/provider-icons.d.ts +8 -0
- package/dist/lib/provider-icons.js +5 -0
- package/dist/mutations/api-key/create-api-key-mutation.d.ts +71 -0
- package/dist/mutations/api-key/create-api-key-mutation.js +12 -0
- package/dist/mutations/api-key/delete-api-key-mutation.d.ts +23 -0
- package/dist/mutations/api-key/delete-api-key-mutation.js +12 -0
- package/dist/mutations/auth/request-password-reset-mutation.d.ts +11 -0
- package/dist/mutations/auth/request-password-reset-mutation.js +8 -0
- package/dist/mutations/auth/reset-password-mutation.d.ts +13 -0
- package/dist/mutations/auth/reset-password-mutation.js +8 -0
- package/dist/mutations/auth/send-verification-email-mutation.d.ts +11 -0
- package/dist/mutations/auth/send-verification-email-mutation.js +8 -0
- package/dist/mutations/auth/sign-in-email-mutation.d.ts +15 -0
- package/dist/mutations/auth/sign-in-email-mutation.js +8 -0
- package/dist/mutations/auth/sign-in-social-mutation.d.ts +53 -0
- package/dist/mutations/auth/sign-in-social-mutation.js +8 -0
- package/dist/mutations/auth/sign-out-mutation.d.ts +6 -0
- package/dist/mutations/auth/sign-out-mutation.js +8 -0
- package/dist/mutations/auth/sign-up-email-mutation.d.ts +17 -0
- package/dist/mutations/auth/sign-up-email-mutation.js +8 -0
- package/dist/mutations/auth-mutation-options.d.ts +10 -0
- package/dist/mutations/auth-mutation-options.js +19 -0
- package/dist/mutations/create-auth-mutation.d.ts +10 -0
- package/dist/mutations/create-auth-mutation.js +20 -0
- package/dist/mutations/magic-link/sign-in-magic-link-mutation.d.ts +19 -0
- package/dist/mutations/magic-link/sign-in-magic-link-mutation.js +8 -0
- package/dist/mutations/multi-session/revoke-multi-session-mutation.d.ts +19 -0
- package/dist/mutations/multi-session/revoke-multi-session-mutation.js +12 -0
- package/dist/mutations/multi-session/set-active-session-mutation.d.ts +19 -0
- package/dist/mutations/multi-session/set-active-session-mutation.js +13 -0
- package/dist/mutations/organization/accept-invitation-mutation.d.ts +18 -0
- package/dist/mutations/organization/accept-invitation-mutation.js +12 -0
- package/dist/mutations/organization/cancel-invitation-mutation.d.ts +18 -0
- package/dist/mutations/organization/cancel-invitation-mutation.js +12 -0
- package/dist/mutations/organization/check-slug-mutation.d.ts +18 -0
- package/dist/mutations/organization/check-slug-mutation.js +15 -0
- package/dist/mutations/organization/create-organization-mutation.d.ts +38 -0
- package/dist/mutations/organization/create-organization-mutation.js +12 -0
- package/dist/mutations/organization/delete-organization-mutation.d.ts +18 -0
- package/dist/mutations/organization/delete-organization-mutation.js +12 -0
- package/dist/mutations/organization/index.d.ts +13 -0
- package/dist/mutations/organization/index.js +13 -0
- package/dist/mutations/organization/invite-member-mutation.d.ts +30 -0
- package/dist/mutations/organization/invite-member-mutation.js +12 -0
- package/dist/mutations/organization/leave-organization-mutation.d.ts +18 -0
- package/dist/mutations/organization/leave-organization-mutation.js +12 -0
- package/dist/mutations/organization/metadata.d.ts +13 -0
- package/dist/mutations/organization/metadata.js +27 -0
- package/dist/mutations/organization/reject-invitation-mutation.d.ts +18 -0
- package/dist/mutations/organization/reject-invitation-mutation.js +12 -0
- package/dist/mutations/organization/remove-member-mutation.d.ts +22 -0
- package/dist/mutations/organization/remove-member-mutation.js +12 -0
- package/dist/mutations/organization/set-active-organization-mutation.d.ts +24 -0
- package/dist/mutations/organization/set-active-organization-mutation.js +35 -0
- package/dist/mutations/organization/update-member-role-mutation.d.ts +26 -0
- package/dist/mutations/organization/update-member-role-mutation.js +12 -0
- package/dist/mutations/organization/update-organization-mutation.d.ts +42 -0
- package/dist/mutations/organization/update-organization-mutation.js +12 -0
- package/dist/mutations/organization/utils.d.ts +8 -0
- package/dist/mutations/organization/utils.js +17 -0
- package/dist/mutations/passkey/add-passkey-mutation.d.ts +73 -0
- package/dist/mutations/passkey/add-passkey-mutation.js +12 -0
- package/dist/mutations/passkey/delete-passkey-mutation.d.ts +19 -0
- package/dist/mutations/passkey/delete-passkey-mutation.js +12 -0
- package/dist/mutations/passkey/sign-in-passkey-mutation.d.ts +50 -0
- package/dist/mutations/passkey/sign-in-passkey-mutation.js +9 -0
- package/dist/mutations/settings/change-email-mutation.d.ts +11 -0
- package/dist/mutations/settings/change-email-mutation.js +8 -0
- package/dist/mutations/settings/change-password-mutation.d.ts +13 -0
- package/dist/mutations/settings/change-password-mutation.js +8 -0
- package/dist/mutations/settings/delete-user-mutation.d.ts +13 -0
- package/dist/mutations/settings/delete-user-mutation.js +8 -0
- package/dist/mutations/settings/link-social-mutation.d.ts +35 -0
- package/dist/mutations/settings/link-social-mutation.js +8 -0
- package/dist/mutations/settings/revoke-session-mutation.d.ts +19 -0
- package/dist/mutations/settings/revoke-session-mutation.js +12 -0
- package/dist/mutations/settings/unlink-account-mutation.d.ts +23 -0
- package/dist/mutations/settings/unlink-account-mutation.js +12 -0
- package/dist/mutations/settings/update-user-mutation.d.ts +6 -0
- package/dist/mutations/settings/update-user-mutation.js +8 -0
- package/dist/mutations/use-session-scoped-mutation.d.ts +17 -0
- package/dist/mutations/use-session-scoped-mutation.js +17 -0
- package/dist/mutations/username/is-username-available-mutation.d.ts +9 -0
- package/dist/mutations/username/is-username-available-mutation.js +8 -0
- package/dist/mutations/username/sign-in-username-mutation.d.ts +15 -0
- package/dist/mutations/username/sign-in-username-mutation.js +9 -0
- package/dist/plugins/captcha-plugin.d.ts +29 -0
- package/dist/plugins/captcha-plugin.js +26 -0
- package/dist/plugins.d.ts +2 -0
- package/dist/plugins.js +2 -0
- package/dist/queries/api-key/list-api-keys-query.d.ts +44 -0
- package/dist/queries/api-key/list-api-keys-query.js +17 -0
- package/dist/queries/auth/session-query.d.ts +22 -0
- package/dist/queries/auth/session-query.js +32 -0
- package/dist/queries/auth-query-options.d.ts +14 -0
- package/dist/queries/auth-query-options.js +17 -0
- package/dist/queries/create-user-scoped-query.d.ts +25 -0
- package/dist/queries/create-user-scoped-query.js +29 -0
- package/dist/queries/multi-session/list-device-sessions-query.d.ts +23 -0
- package/dist/queries/multi-session/list-device-sessions-query.js +17 -0
- package/dist/queries/organization/active-organization-query.d.ts +37 -0
- package/dist/queries/organization/active-organization-query.js +26 -0
- package/dist/queries/organization/full-organization-query.d.ts +35 -0
- package/dist/queries/organization/full-organization-query.js +25 -0
- package/dist/queries/organization/has-permission-query.d.ts +23 -0
- package/dist/queries/organization/has-permission-query.js +31 -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 +29 -0
- package/dist/queries/organization/list-members-query.d.ts +53 -0
- package/dist/queries/organization/list-members-query.js +29 -0
- package/dist/queries/organization/list-organizations-query.d.ts +23 -0
- package/dist/queries/organization/list-organizations-query.js +25 -0
- package/dist/queries/organization/list-user-invitations-query.d.ts +29 -0
- package/dist/queries/organization/list-user-invitations-query.js +25 -0
- package/dist/queries/organization/plugin.d.ts +1 -0
- package/dist/queries/organization/plugin.js +8 -0
- package/dist/queries/organization/utils.d.ts +16 -0
- package/dist/queries/organization/utils.js +18 -0
- package/dist/queries/passkey/list-passkeys-query.d.ts +23 -0
- package/dist/queries/passkey/list-passkeys-query.js +17 -0
- package/dist/queries/settings/account-info-query.d.ts +35 -0
- package/dist/queries/settings/account-info-query.js +17 -0
- package/dist/queries/settings/list-accounts-query.d.ts +23 -0
- package/dist/queries/settings/list-accounts-query.js +17 -0
- package/dist/queries/settings/list-sessions-query.d.ts +24 -0
- package/dist/queries/settings/list-sessions-query.js +17 -0
- package/dist/server/queries/auth/session-query.d.ts +19 -0
- package/dist/server/queries/auth/session-query.js +13 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.js +7 -0
- package/package.json +63 -0
- package/src/components/auth/email/email-changed.tsx +305 -0
- package/src/components/auth/email/email-styles.tsx +139 -0
- package/src/components/auth/email/email-verification.tsx +249 -0
- package/src/components/auth/email/index.ts +9 -0
- package/src/components/auth/email/magic-link.tsx +254 -0
- package/src/components/auth/email/new-device.tsx +347 -0
- package/src/components/auth/email/organization-invitation.tsx +322 -0
- package/src/components/auth/email/otp-email.tsx +239 -0
- package/src/components/auth/email/password-changed.tsx +279 -0
- package/src/components/auth/email/reset-password.tsx +250 -0
- package/src/email.ts +49 -0
- package/src/hooks/auth/use-authenticate.ts +30 -0
- package/src/hooks/auth/use-sign-out.ts +23 -0
- package/src/hooks/auth/use-user.ts +19 -0
- package/src/hooks/use-auth-mutation.ts +35 -0
- package/src/hooks/use-auth-query.ts +33 -0
- package/src/index.ts +48 -0
- package/src/lib/auth-client.ts +43 -0
- package/src/lib/auth-config.ts +46 -0
- package/src/lib/auth-plugin.ts +20 -0
- package/src/lib/auth-provider.tsx +60 -0
- package/src/lib/auth-server.ts +25 -0
- package/src/lib/auth-utils.ts +25 -0
- package/src/lib/fetch-options-provider.tsx +77 -0
- package/src/lib/mutation-invalidator.tsx +82 -0
- package/src/lib/provider-icons.ts +10 -0
- package/src/mutations/api-key/create-api-key-mutation.ts +40 -0
- package/src/mutations/api-key/delete-api-key-mutation.ts +40 -0
- package/src/mutations/auth/request-password-reset-mutation.ts +15 -0
- package/src/mutations/auth/reset-password-mutation.ts +16 -0
- package/src/mutations/auth/send-verification-email-mutation.ts +15 -0
- package/src/mutations/auth/sign-in-email-mutation.ts +17 -0
- package/src/mutations/auth/sign-in-social-mutation.ts +16 -0
- package/src/mutations/auth/sign-out-mutation.ts +13 -0
- package/src/mutations/auth/sign-up-email-mutation.ts +17 -0
- package/src/mutations/auth-mutation-options.ts +62 -0
- package/src/mutations/create-auth-mutation.ts +44 -0
- package/src/mutations/magic-link/sign-in-magic-link-mutation.ts +15 -0
- package/src/mutations/multi-session/revoke-multi-session-mutation.ts +40 -0
- package/src/mutations/multi-session/set-active-session-mutation.ts +43 -0
- package/src/mutations/organization/accept-invitation-mutation.ts +38 -0
- package/src/mutations/organization/cancel-invitation-mutation.ts +38 -0
- package/src/mutations/organization/check-slug-mutation.ts +36 -0
- package/src/mutations/organization/create-organization-mutation.ts +37 -0
- package/src/mutations/organization/delete-organization-mutation.ts +37 -0
- package/src/mutations/organization/index.ts +13 -0
- package/src/mutations/organization/invite-member-mutation.ts +38 -0
- package/src/mutations/organization/leave-organization-mutation.ts +37 -0
- package/src/mutations/organization/metadata.ts +103 -0
- package/src/mutations/organization/reject-invitation-mutation.ts +38 -0
- package/src/mutations/organization/remove-member-mutation.ts +38 -0
- package/src/mutations/organization/set-active-organization-mutation.ts +110 -0
- package/src/mutations/organization/update-member-role-mutation.ts +38 -0
- package/src/mutations/organization/update-organization-mutation.ts +37 -0
- package/src/mutations/organization/utils.ts +51 -0
- package/src/mutations/passkey/add-passkey-mutation.ts +40 -0
- package/src/mutations/passkey/delete-passkey-mutation.ts +40 -0
- package/src/mutations/passkey/sign-in-passkey-mutation.ts +17 -0
- package/src/mutations/settings/change-email-mutation.ts +17 -0
- package/src/mutations/settings/change-password-mutation.ts +16 -0
- package/src/mutations/settings/delete-user-mutation.ts +16 -0
- package/src/mutations/settings/link-social-mutation.ts +16 -0
- package/src/mutations/settings/revoke-session-mutation.ts +38 -0
- package/src/mutations/settings/unlink-account-mutation.ts +38 -0
- package/src/mutations/settings/update-user-mutation.ts +17 -0
- package/src/mutations/use-session-scoped-mutation.ts +64 -0
- package/src/mutations/username/is-username-available-mutation.ts +15 -0
- package/src/mutations/username/sign-in-username-mutation.ts +17 -0
- package/src/plugins/captcha-plugin.tsx +64 -0
- package/src/plugins.ts +2 -0
- package/src/queries/api-key/list-api-keys-query.ts +93 -0
- package/src/queries/auth/session-query.ts +81 -0
- package/src/queries/auth-query-options.ts +57 -0
- package/src/queries/create-user-scoped-query.ts +107 -0
- package/src/queries/multi-session/list-device-sessions-query.ts +107 -0
- package/src/queries/organization/active-organization-query.ts +127 -0
- package/src/queries/organization/full-organization-query.ts +111 -0
- package/src/queries/organization/has-permission-query.ts +121 -0
- package/src/queries/organization/index.ts +7 -0
- package/src/queries/organization/list-invitations-query.ts +124 -0
- package/src/queries/organization/list-members-query.ts +124 -0
- package/src/queries/organization/list-organizations-query.ts +113 -0
- package/src/queries/organization/list-user-invitations-query.ts +114 -0
- package/src/queries/organization/plugin.ts +11 -0
- package/src/queries/organization/utils.ts +88 -0
- package/src/queries/passkey/list-passkeys-query.ts +93 -0
- package/src/queries/settings/account-info-query.ts +94 -0
- package/src/queries/settings/list-accounts-query.ts +94 -0
- package/src/queries/settings/list-sessions-query.ts +96 -0
- package/src/server/queries/auth/session-query.ts +56 -0
- package/src/server.ts +7 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import { createQuery, type QueryClient } from "@tanstack/solid-query"
|
|
3
|
+
import type { OrganizationAuthClient } from "../../lib/auth-client"
|
|
4
|
+
import { useSession } from "../auth/session-query"
|
|
5
|
+
import { useActiveOrganization } from "./active-organization-query"
|
|
6
|
+
import {
|
|
7
|
+
createOrganizationQueryOptions,
|
|
8
|
+
ensureOrganizationQuery,
|
|
9
|
+
fetchOrganizationQuery,
|
|
10
|
+
prefetchOrganizationQuery,
|
|
11
|
+
skipToken
|
|
12
|
+
} from "./utils"
|
|
13
|
+
|
|
14
|
+
export type ListOrganizationMembersData<
|
|
15
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
16
|
+
> = Awaited<ReturnType<TAuthClient["organization"]["listMembers"]>>
|
|
17
|
+
|
|
18
|
+
export type ListOrganizationMembersParams<
|
|
19
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
20
|
+
> = Parameters<TAuthClient["organization"]["listMembers"]>[0]
|
|
21
|
+
|
|
22
|
+
export type ListOrganizationMembersOptions<
|
|
23
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
24
|
+
> = Omit<
|
|
25
|
+
ReturnType<typeof listOrganizationMembersOptions<TAuthClient>>,
|
|
26
|
+
"queryKey" | "queryFn"
|
|
27
|
+
>
|
|
28
|
+
|
|
29
|
+
export function listOrganizationMembersOptions<
|
|
30
|
+
TAuthClient extends OrganizationAuthClient
|
|
31
|
+
>(
|
|
32
|
+
authClient: TAuthClient,
|
|
33
|
+
userId: string | undefined,
|
|
34
|
+
params?: ListOrganizationMembersParams<TAuthClient>
|
|
35
|
+
) {
|
|
36
|
+
return createOrganizationQueryOptions(
|
|
37
|
+
organizationQueryKeys.members.list(userId, params?.query),
|
|
38
|
+
authClient.organization.listMembers,
|
|
39
|
+
params
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const ensureListOrganizationMembers = <
|
|
44
|
+
TAuthClient extends OrganizationAuthClient
|
|
45
|
+
>(
|
|
46
|
+
queryClient: QueryClient,
|
|
47
|
+
authClient: TAuthClient,
|
|
48
|
+
userId: string | undefined,
|
|
49
|
+
params?: ListOrganizationMembersParams<TAuthClient>
|
|
50
|
+
) =>
|
|
51
|
+
ensureOrganizationQuery(
|
|
52
|
+
queryClient,
|
|
53
|
+
organizationQueryKeys.members.list(userId, params?.query),
|
|
54
|
+
authClient.organization.listMembers,
|
|
55
|
+
params
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
export const prefetchListOrganizationMembers = <
|
|
59
|
+
TAuthClient extends OrganizationAuthClient
|
|
60
|
+
>(
|
|
61
|
+
queryClient: QueryClient,
|
|
62
|
+
authClient: TAuthClient,
|
|
63
|
+
userId: string | undefined,
|
|
64
|
+
params?: ListOrganizationMembersParams<TAuthClient>
|
|
65
|
+
) =>
|
|
66
|
+
prefetchOrganizationQuery(
|
|
67
|
+
queryClient,
|
|
68
|
+
organizationQueryKeys.members.list(userId, params?.query),
|
|
69
|
+
authClient.organization.listMembers,
|
|
70
|
+
params
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
export const fetchListOrganizationMembers = <
|
|
74
|
+
TAuthClient extends OrganizationAuthClient
|
|
75
|
+
>(
|
|
76
|
+
queryClient: QueryClient,
|
|
77
|
+
authClient: TAuthClient,
|
|
78
|
+
userId: string | undefined,
|
|
79
|
+
params?: ListOrganizationMembersParams<TAuthClient>
|
|
80
|
+
) =>
|
|
81
|
+
fetchOrganizationQuery(
|
|
82
|
+
queryClient,
|
|
83
|
+
organizationQueryKeys.members.list(userId, params?.query),
|
|
84
|
+
authClient.organization.listMembers,
|
|
85
|
+
params
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
export type UseListOrganizationMembersOptions<
|
|
89
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
90
|
+
> = ListOrganizationMembersOptions<TAuthClient> &
|
|
91
|
+
ListOrganizationMembersParams<TAuthClient>
|
|
92
|
+
|
|
93
|
+
export function useListOrganizationMembers<
|
|
94
|
+
TAuthClient extends OrganizationAuthClient
|
|
95
|
+
>(
|
|
96
|
+
authClient: TAuthClient,
|
|
97
|
+
options: UseListOrganizationMembersOptions<TAuthClient> = {}
|
|
98
|
+
) {
|
|
99
|
+
const session = useSession(authClient)
|
|
100
|
+
const activeOrganization = useActiveOrganization(authClient, {
|
|
101
|
+
enabled: !options.query?.organizationId
|
|
102
|
+
} as never)
|
|
103
|
+
|
|
104
|
+
return createQuery(() => {
|
|
105
|
+
const { query, fetchOptions, ...queryOptionsRest } = options
|
|
106
|
+
const userId = session.data?.user.id
|
|
107
|
+
const organizationId = query?.organizationId ?? activeOrganization.data?.id
|
|
108
|
+
const params = {
|
|
109
|
+
query: { ...query, organizationId },
|
|
110
|
+
fetchOptions
|
|
111
|
+
} as ListOrganizationMembersParams<TAuthClient>
|
|
112
|
+
const baseOptions = listOrganizationMembersOptions(
|
|
113
|
+
authClient,
|
|
114
|
+
userId,
|
|
115
|
+
params
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
return {
|
|
119
|
+
...queryOptionsRest,
|
|
120
|
+
...baseOptions,
|
|
121
|
+
queryFn: userId && organizationId ? baseOptions.queryFn : skipToken
|
|
122
|
+
}
|
|
123
|
+
})
|
|
124
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import { createQuery, type QueryClient } from "@tanstack/solid-query"
|
|
3
|
+
import type { OrganizationAuthClient } from "../../lib/auth-client"
|
|
4
|
+
import { useSession } from "../auth/session-query"
|
|
5
|
+
import {
|
|
6
|
+
createOrganizationQueryOptions,
|
|
7
|
+
ensureOrganizationQuery,
|
|
8
|
+
fetchOrganizationQuery,
|
|
9
|
+
prefetchOrganizationQuery,
|
|
10
|
+
skipToken
|
|
11
|
+
} from "./utils"
|
|
12
|
+
|
|
13
|
+
export type ListOrganizationsData<
|
|
14
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
15
|
+
> = Awaited<ReturnType<TAuthClient["organization"]["list"]>>
|
|
16
|
+
|
|
17
|
+
export type ListOrganizationsParams<
|
|
18
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
19
|
+
> = Parameters<TAuthClient["organization"]["list"]>[0]
|
|
20
|
+
|
|
21
|
+
export type ListOrganizationsOptions<
|
|
22
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
23
|
+
> = Omit<
|
|
24
|
+
ReturnType<typeof listOrganizationsOptions<TAuthClient>>,
|
|
25
|
+
"queryKey" | "queryFn"
|
|
26
|
+
>
|
|
27
|
+
|
|
28
|
+
export function listOrganizationsOptions<
|
|
29
|
+
TAuthClient extends OrganizationAuthClient
|
|
30
|
+
>(
|
|
31
|
+
authClient: TAuthClient,
|
|
32
|
+
userId: string | undefined,
|
|
33
|
+
params?: ListOrganizationsParams<TAuthClient>
|
|
34
|
+
) {
|
|
35
|
+
return createOrganizationQueryOptions(
|
|
36
|
+
organizationQueryKeys.list(userId, params?.query),
|
|
37
|
+
authClient.organization.list,
|
|
38
|
+
params
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const ensureListOrganizations = <
|
|
43
|
+
TAuthClient extends OrganizationAuthClient
|
|
44
|
+
>(
|
|
45
|
+
queryClient: QueryClient,
|
|
46
|
+
authClient: TAuthClient,
|
|
47
|
+
userId: string | undefined,
|
|
48
|
+
params?: ListOrganizationsParams<TAuthClient>
|
|
49
|
+
) =>
|
|
50
|
+
ensureOrganizationQuery(
|
|
51
|
+
queryClient,
|
|
52
|
+
organizationQueryKeys.list(userId, params?.query),
|
|
53
|
+
authClient.organization.list,
|
|
54
|
+
params
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
export const prefetchListOrganizations = <
|
|
58
|
+
TAuthClient extends OrganizationAuthClient
|
|
59
|
+
>(
|
|
60
|
+
queryClient: QueryClient,
|
|
61
|
+
authClient: TAuthClient,
|
|
62
|
+
userId: string | undefined,
|
|
63
|
+
params?: ListOrganizationsParams<TAuthClient>
|
|
64
|
+
) =>
|
|
65
|
+
prefetchOrganizationQuery(
|
|
66
|
+
queryClient,
|
|
67
|
+
organizationQueryKeys.list(userId, params?.query),
|
|
68
|
+
authClient.organization.list,
|
|
69
|
+
params
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
export const fetchListOrganizations = <
|
|
73
|
+
TAuthClient extends OrganizationAuthClient
|
|
74
|
+
>(
|
|
75
|
+
queryClient: QueryClient,
|
|
76
|
+
authClient: TAuthClient,
|
|
77
|
+
userId: string | undefined,
|
|
78
|
+
params?: ListOrganizationsParams<TAuthClient>
|
|
79
|
+
) =>
|
|
80
|
+
fetchOrganizationQuery(
|
|
81
|
+
queryClient,
|
|
82
|
+
organizationQueryKeys.list(userId, params?.query),
|
|
83
|
+
authClient.organization.list,
|
|
84
|
+
params
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
export type UseListOrganizationsOptions<
|
|
88
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
89
|
+
> = ListOrganizationsOptions<TAuthClient> & ListOrganizationsParams<TAuthClient>
|
|
90
|
+
|
|
91
|
+
export function useListOrganizations<
|
|
92
|
+
TAuthClient extends OrganizationAuthClient
|
|
93
|
+
>(
|
|
94
|
+
authClient: TAuthClient,
|
|
95
|
+
options: UseListOrganizationsOptions<TAuthClient> = {}
|
|
96
|
+
) {
|
|
97
|
+
const session = useSession(authClient)
|
|
98
|
+
|
|
99
|
+
return createQuery(() => {
|
|
100
|
+
const { query, fetchOptions, ...queryOptionsRest } = options
|
|
101
|
+
const userId = session.data?.user.id
|
|
102
|
+
const baseOptions = listOrganizationsOptions(authClient, userId, {
|
|
103
|
+
query,
|
|
104
|
+
fetchOptions
|
|
105
|
+
} as ListOrganizationsParams<TAuthClient>)
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
...queryOptionsRest,
|
|
109
|
+
...baseOptions,
|
|
110
|
+
queryFn: userId ? baseOptions.queryFn : skipToken
|
|
111
|
+
}
|
|
112
|
+
})
|
|
113
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { organizationQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import { createQuery, type QueryClient } from "@tanstack/solid-query"
|
|
3
|
+
import type { OrganizationAuthClient } from "../../lib/auth-client"
|
|
4
|
+
import { useSession } from "../auth/session-query"
|
|
5
|
+
import {
|
|
6
|
+
createOrganizationQueryOptions,
|
|
7
|
+
ensureOrganizationQuery,
|
|
8
|
+
fetchOrganizationQuery,
|
|
9
|
+
prefetchOrganizationQuery,
|
|
10
|
+
skipToken
|
|
11
|
+
} from "./utils"
|
|
12
|
+
|
|
13
|
+
export type ListUserInvitationsData<
|
|
14
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
15
|
+
> = Awaited<ReturnType<TAuthClient["organization"]["listUserInvitations"]>>
|
|
16
|
+
|
|
17
|
+
export type ListUserInvitationsParams<
|
|
18
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
19
|
+
> = Parameters<TAuthClient["organization"]["listUserInvitations"]>[0]
|
|
20
|
+
|
|
21
|
+
export type ListUserInvitationsOptions<
|
|
22
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
23
|
+
> = Omit<
|
|
24
|
+
ReturnType<typeof listUserInvitationsOptions<TAuthClient>>,
|
|
25
|
+
"queryKey" | "queryFn"
|
|
26
|
+
>
|
|
27
|
+
|
|
28
|
+
export function listUserInvitationsOptions<
|
|
29
|
+
TAuthClient extends OrganizationAuthClient
|
|
30
|
+
>(
|
|
31
|
+
authClient: TAuthClient,
|
|
32
|
+
userId: string | undefined,
|
|
33
|
+
params?: ListUserInvitationsParams<TAuthClient>
|
|
34
|
+
) {
|
|
35
|
+
return createOrganizationQueryOptions(
|
|
36
|
+
organizationQueryKeys.userInvitations.list(userId, params?.query),
|
|
37
|
+
authClient.organization.listUserInvitations,
|
|
38
|
+
params
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const ensureListUserInvitations = <
|
|
43
|
+
TAuthClient extends OrganizationAuthClient
|
|
44
|
+
>(
|
|
45
|
+
queryClient: QueryClient,
|
|
46
|
+
authClient: TAuthClient,
|
|
47
|
+
userId: string | undefined,
|
|
48
|
+
params?: ListUserInvitationsParams<TAuthClient>
|
|
49
|
+
) =>
|
|
50
|
+
ensureOrganizationQuery(
|
|
51
|
+
queryClient,
|
|
52
|
+
organizationQueryKeys.userInvitations.list(userId, params?.query),
|
|
53
|
+
authClient.organization.listUserInvitations,
|
|
54
|
+
params
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
export const prefetchListUserInvitations = <
|
|
58
|
+
TAuthClient extends OrganizationAuthClient
|
|
59
|
+
>(
|
|
60
|
+
queryClient: QueryClient,
|
|
61
|
+
authClient: TAuthClient,
|
|
62
|
+
userId: string | undefined,
|
|
63
|
+
params?: ListUserInvitationsParams<TAuthClient>
|
|
64
|
+
) =>
|
|
65
|
+
prefetchOrganizationQuery(
|
|
66
|
+
queryClient,
|
|
67
|
+
organizationQueryKeys.userInvitations.list(userId, params?.query),
|
|
68
|
+
authClient.organization.listUserInvitations,
|
|
69
|
+
params
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
export const fetchListUserInvitations = <
|
|
73
|
+
TAuthClient extends OrganizationAuthClient
|
|
74
|
+
>(
|
|
75
|
+
queryClient: QueryClient,
|
|
76
|
+
authClient: TAuthClient,
|
|
77
|
+
userId: string | undefined,
|
|
78
|
+
params?: ListUserInvitationsParams<TAuthClient>
|
|
79
|
+
) =>
|
|
80
|
+
fetchOrganizationQuery(
|
|
81
|
+
queryClient,
|
|
82
|
+
organizationQueryKeys.userInvitations.list(userId, params?.query),
|
|
83
|
+
authClient.organization.listUserInvitations,
|
|
84
|
+
params
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
export type UseListUserInvitationsOptions<
|
|
88
|
+
TAuthClient extends OrganizationAuthClient = OrganizationAuthClient
|
|
89
|
+
> = ListUserInvitationsOptions<TAuthClient> &
|
|
90
|
+
ListUserInvitationsParams<TAuthClient>
|
|
91
|
+
|
|
92
|
+
export function useListUserInvitations<
|
|
93
|
+
TAuthClient extends OrganizationAuthClient
|
|
94
|
+
>(
|
|
95
|
+
authClient: TAuthClient,
|
|
96
|
+
options: UseListUserInvitationsOptions<TAuthClient> = {}
|
|
97
|
+
) {
|
|
98
|
+
const session = useSession(authClient)
|
|
99
|
+
const { query, fetchOptions, ...queryOptionsRest } = options
|
|
100
|
+
|
|
101
|
+
return createQuery(() => {
|
|
102
|
+
const userId = session.data?.user.id
|
|
103
|
+
const baseOptions = listUserInvitationsOptions(authClient, userId, {
|
|
104
|
+
query,
|
|
105
|
+
fetchOptions
|
|
106
|
+
} as ListUserInvitationsParams<TAuthClient>)
|
|
107
|
+
|
|
108
|
+
return {
|
|
109
|
+
...queryOptionsRest,
|
|
110
|
+
...baseOptions,
|
|
111
|
+
queryFn: userId ? baseOptions.queryFn : skipToken
|
|
112
|
+
}
|
|
113
|
+
})
|
|
114
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { organizationPlugin } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import { useAuth } from "../../lib/auth-provider"
|
|
3
|
+
|
|
4
|
+
export function useOrganizationSlug() {
|
|
5
|
+
const auth = useAuth()
|
|
6
|
+
const plugin = auth.plugins?.find(
|
|
7
|
+
(candidate) => candidate.id === organizationPlugin.id
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
return (plugin as { slug?: string | null } | undefined)?.slug
|
|
11
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type DataTag,
|
|
3
|
+
type QueryClient,
|
|
4
|
+
type QueryKey,
|
|
5
|
+
queryOptions,
|
|
6
|
+
skipToken
|
|
7
|
+
} from "@tanstack/solid-query"
|
|
8
|
+
import type { BetterFetchError } from "better-auth/client"
|
|
9
|
+
|
|
10
|
+
export type OrganizationQueryMethod<TData = unknown> = (
|
|
11
|
+
// biome-ignore lint/suspicious/noExplicitAny: Better Auth generated methods use plugin-specific params.
|
|
12
|
+
params?: any
|
|
13
|
+
) => Promise<TData>
|
|
14
|
+
|
|
15
|
+
export type OrganizationQueryParams<TMethod extends OrganizationQueryMethod> =
|
|
16
|
+
Parameters<TMethod>[0]
|
|
17
|
+
export type OrganizationQueryData<TMethod extends OrganizationQueryMethod> =
|
|
18
|
+
Awaited<ReturnType<TMethod>>
|
|
19
|
+
|
|
20
|
+
export function createOrganizationQueryOptions<
|
|
21
|
+
TMethod extends OrganizationQueryMethod,
|
|
22
|
+
const TQueryKey extends QueryKey
|
|
23
|
+
>(
|
|
24
|
+
queryKey: TQueryKey,
|
|
25
|
+
authFn: TMethod,
|
|
26
|
+
params?: OrganizationQueryParams<TMethod>
|
|
27
|
+
) {
|
|
28
|
+
type TData = OrganizationQueryData<TMethod>
|
|
29
|
+
|
|
30
|
+
const options = queryOptions<TData, BetterFetchError, TData, TQueryKey>({
|
|
31
|
+
queryKey,
|
|
32
|
+
queryFn: ({ signal }) =>
|
|
33
|
+
authFn({
|
|
34
|
+
...(params ?? {}),
|
|
35
|
+
fetchOptions: {
|
|
36
|
+
...(params as { fetchOptions?: Record<string, unknown> } | undefined)
|
|
37
|
+
?.fetchOptions,
|
|
38
|
+
signal,
|
|
39
|
+
throw: true
|
|
40
|
+
}
|
|
41
|
+
} as OrganizationQueryParams<TMethod>) as Promise<TData>
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
return options as typeof options & {
|
|
45
|
+
queryKey: DataTag<TQueryKey, TData, BetterFetchError>
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export const ensureOrganizationQuery = <
|
|
50
|
+
TMethod extends OrganizationQueryMethod,
|
|
51
|
+
const TQueryKey extends QueryKey
|
|
52
|
+
>(
|
|
53
|
+
queryClient: QueryClient,
|
|
54
|
+
queryKey: TQueryKey,
|
|
55
|
+
authFn: TMethod,
|
|
56
|
+
params?: OrganizationQueryParams<TMethod>
|
|
57
|
+
) =>
|
|
58
|
+
queryClient.ensureQueryData(
|
|
59
|
+
createOrganizationQueryOptions(queryKey, authFn, params) as never
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
export const prefetchOrganizationQuery = <
|
|
63
|
+
TMethod extends OrganizationQueryMethod,
|
|
64
|
+
const TQueryKey extends QueryKey
|
|
65
|
+
>(
|
|
66
|
+
queryClient: QueryClient,
|
|
67
|
+
queryKey: TQueryKey,
|
|
68
|
+
authFn: TMethod,
|
|
69
|
+
params?: OrganizationQueryParams<TMethod>
|
|
70
|
+
) =>
|
|
71
|
+
queryClient.prefetchQuery(
|
|
72
|
+
createOrganizationQueryOptions(queryKey, authFn, params) as never
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
export const fetchOrganizationQuery = <
|
|
76
|
+
TMethod extends OrganizationQueryMethod,
|
|
77
|
+
const TQueryKey extends QueryKey
|
|
78
|
+
>(
|
|
79
|
+
queryClient: QueryClient,
|
|
80
|
+
queryKey: TQueryKey,
|
|
81
|
+
authFn: TMethod,
|
|
82
|
+
params?: OrganizationQueryParams<TMethod>
|
|
83
|
+
) =>
|
|
84
|
+
queryClient.fetchQuery(
|
|
85
|
+
createOrganizationQueryOptions(queryKey, authFn, params) as never
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
export { skipToken }
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { passkeyQueryKeys } from "@better-auth-ui/core/plugins"
|
|
2
|
+
import type { QueryClient } from "@tanstack/solid-query"
|
|
3
|
+
import type { InferData, PasskeyAuthClient } from "../../lib/auth-client"
|
|
4
|
+
import { useSession } from "../auth/session-query"
|
|
5
|
+
import {
|
|
6
|
+
createUserScopedOptions,
|
|
7
|
+
createUserScopedQuery,
|
|
8
|
+
ensureUserScopedQuery,
|
|
9
|
+
fetchUserScopedQuery,
|
|
10
|
+
getSessionUserId,
|
|
11
|
+
prefetchUserScopedQuery
|
|
12
|
+
} from "../create-user-scoped-query"
|
|
13
|
+
|
|
14
|
+
export type ListPasskeysData<TAuthClient extends PasskeyAuthClient> = InferData<
|
|
15
|
+
TAuthClient["passkey"]["listUserPasskeys"]
|
|
16
|
+
>
|
|
17
|
+
export type ListPasskeysParams<TAuthClient extends PasskeyAuthClient> =
|
|
18
|
+
Parameters<TAuthClient["passkey"]["listUserPasskeys"]>[0]
|
|
19
|
+
export type ListPasskeysOptions<TAuthClient extends PasskeyAuthClient> = Omit<
|
|
20
|
+
ReturnType<typeof listPasskeysOptions<TAuthClient>>,
|
|
21
|
+
"queryKey" | "queryFn"
|
|
22
|
+
>
|
|
23
|
+
|
|
24
|
+
export function listPasskeysOptions<TAuthClient extends PasskeyAuthClient>(
|
|
25
|
+
authClient: TAuthClient,
|
|
26
|
+
userId: string | undefined,
|
|
27
|
+
params?: ListPasskeysParams<TAuthClient>
|
|
28
|
+
) {
|
|
29
|
+
return createUserScopedOptions(
|
|
30
|
+
passkeyQueryKeys.list(userId, params?.query),
|
|
31
|
+
authClient.passkey.listUserPasskeys,
|
|
32
|
+
params
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export const ensureListPasskeys = <TAuthClient extends PasskeyAuthClient>(
|
|
37
|
+
queryClient: QueryClient,
|
|
38
|
+
authClient: TAuthClient,
|
|
39
|
+
userId: string,
|
|
40
|
+
params?: ListPasskeysParams<TAuthClient>
|
|
41
|
+
) =>
|
|
42
|
+
ensureUserScopedQuery(
|
|
43
|
+
queryClient,
|
|
44
|
+
passkeyQueryKeys.list(userId, params?.query),
|
|
45
|
+
authClient.passkey.listUserPasskeys,
|
|
46
|
+
params
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
export const prefetchListPasskeys = <TAuthClient extends PasskeyAuthClient>(
|
|
50
|
+
queryClient: QueryClient,
|
|
51
|
+
authClient: TAuthClient,
|
|
52
|
+
userId: string,
|
|
53
|
+
params?: ListPasskeysParams<TAuthClient>
|
|
54
|
+
) =>
|
|
55
|
+
prefetchUserScopedQuery(
|
|
56
|
+
queryClient,
|
|
57
|
+
passkeyQueryKeys.list(userId, params?.query),
|
|
58
|
+
authClient.passkey.listUserPasskeys,
|
|
59
|
+
params
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
export const fetchListPasskeys = <TAuthClient extends PasskeyAuthClient>(
|
|
63
|
+
queryClient: QueryClient,
|
|
64
|
+
authClient: TAuthClient,
|
|
65
|
+
userId: string,
|
|
66
|
+
params?: ListPasskeysParams<TAuthClient>
|
|
67
|
+
) =>
|
|
68
|
+
fetchUserScopedQuery(
|
|
69
|
+
queryClient,
|
|
70
|
+
passkeyQueryKeys.list(userId, params?.query),
|
|
71
|
+
authClient.passkey.listUserPasskeys,
|
|
72
|
+
params
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
export type UseListPasskeysOptions<TAuthClient extends PasskeyAuthClient> =
|
|
76
|
+
ListPasskeysOptions<TAuthClient> & ListPasskeysParams<TAuthClient>
|
|
77
|
+
|
|
78
|
+
export function useListPasskeys<TAuthClient extends PasskeyAuthClient>(
|
|
79
|
+
authClient: TAuthClient,
|
|
80
|
+
options: UseListPasskeysOptions<TAuthClient> = {}
|
|
81
|
+
) {
|
|
82
|
+
const session = useSession(authClient)
|
|
83
|
+
const userId = () => getSessionUserId(session)
|
|
84
|
+
const { query, fetchOptions, ...queryOptionsRest } = options
|
|
85
|
+
|
|
86
|
+
return createUserScopedQuery(
|
|
87
|
+
() => passkeyQueryKeys.list(userId(), query),
|
|
88
|
+
authClient.passkey.listUserPasskeys,
|
|
89
|
+
() => ({ query, fetchOptions }) as ListPasskeysParams<TAuthClient>,
|
|
90
|
+
() => Boolean(userId()),
|
|
91
|
+
() => queryOptionsRest
|
|
92
|
+
)
|
|
93
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { authQueryKeys } from "@better-auth-ui/core"
|
|
2
|
+
import type { QueryClient } from "@tanstack/solid-query"
|
|
3
|
+
import type { AuthClient, InferData } from "../../lib/auth-client"
|
|
4
|
+
import { useSession } from "../auth/session-query"
|
|
5
|
+
import {
|
|
6
|
+
createUserScopedOptions,
|
|
7
|
+
createUserScopedQuery,
|
|
8
|
+
ensureUserScopedQuery,
|
|
9
|
+
fetchUserScopedQuery,
|
|
10
|
+
getSessionUserId,
|
|
11
|
+
prefetchUserScopedQuery
|
|
12
|
+
} from "../create-user-scoped-query"
|
|
13
|
+
|
|
14
|
+
export type AccountInfoData<TAuthClient extends AuthClient> = InferData<
|
|
15
|
+
TAuthClient["accountInfo"]
|
|
16
|
+
>
|
|
17
|
+
export type AccountInfoParams<TAuthClient extends AuthClient> = Parameters<
|
|
18
|
+
TAuthClient["accountInfo"]
|
|
19
|
+
>[0]
|
|
20
|
+
export type AccountInfoOptions<TAuthClient extends AuthClient> = Omit<
|
|
21
|
+
ReturnType<typeof accountInfoOptions<TAuthClient>>,
|
|
22
|
+
"queryKey" | "queryFn"
|
|
23
|
+
>
|
|
24
|
+
|
|
25
|
+
export function accountInfoOptions<TAuthClient extends AuthClient>(
|
|
26
|
+
authClient: TAuthClient,
|
|
27
|
+
userId: string | undefined,
|
|
28
|
+
params?: AccountInfoParams<TAuthClient>
|
|
29
|
+
) {
|
|
30
|
+
return createUserScopedOptions(
|
|
31
|
+
authQueryKeys.accountInfo(userId, params?.query),
|
|
32
|
+
authClient.accountInfo,
|
|
33
|
+
params
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const ensureAccountInfo = <TAuthClient extends AuthClient>(
|
|
38
|
+
queryClient: QueryClient,
|
|
39
|
+
authClient: TAuthClient,
|
|
40
|
+
userId: string,
|
|
41
|
+
params?: AccountInfoParams<TAuthClient>
|
|
42
|
+
) =>
|
|
43
|
+
ensureUserScopedQuery(
|
|
44
|
+
queryClient,
|
|
45
|
+
authQueryKeys.accountInfo(userId, params?.query),
|
|
46
|
+
authClient.accountInfo,
|
|
47
|
+
params
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
export const prefetchAccountInfo = <TAuthClient extends AuthClient>(
|
|
51
|
+
queryClient: QueryClient,
|
|
52
|
+
authClient: TAuthClient,
|
|
53
|
+
userId: string,
|
|
54
|
+
params?: AccountInfoParams<TAuthClient>
|
|
55
|
+
) =>
|
|
56
|
+
prefetchUserScopedQuery(
|
|
57
|
+
queryClient,
|
|
58
|
+
authQueryKeys.accountInfo(userId, params?.query),
|
|
59
|
+
authClient.accountInfo,
|
|
60
|
+
params
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
export const fetchAccountInfo = <TAuthClient extends AuthClient>(
|
|
64
|
+
queryClient: QueryClient,
|
|
65
|
+
authClient: TAuthClient,
|
|
66
|
+
userId: string,
|
|
67
|
+
params?: AccountInfoParams<TAuthClient>
|
|
68
|
+
) =>
|
|
69
|
+
fetchUserScopedQuery(
|
|
70
|
+
queryClient,
|
|
71
|
+
authQueryKeys.accountInfo(userId, params?.query),
|
|
72
|
+
authClient.accountInfo,
|
|
73
|
+
params
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
export type UseAccountInfoOptions<TAuthClient extends AuthClient> =
|
|
77
|
+
AccountInfoOptions<TAuthClient> & AccountInfoParams<TAuthClient>
|
|
78
|
+
|
|
79
|
+
export function useAccountInfo<TAuthClient extends AuthClient>(
|
|
80
|
+
authClient: TAuthClient,
|
|
81
|
+
options: UseAccountInfoOptions<TAuthClient> = {}
|
|
82
|
+
) {
|
|
83
|
+
const session = useSession(authClient)
|
|
84
|
+
const userId = () => getSessionUserId(session)
|
|
85
|
+
const { query, fetchOptions, ...queryOptionsRest } = options
|
|
86
|
+
|
|
87
|
+
return createUserScopedQuery(
|
|
88
|
+
() => authQueryKeys.accountInfo(userId(), query),
|
|
89
|
+
authClient.accountInfo,
|
|
90
|
+
() => ({ query, fetchOptions }) as AccountInfoParams<TAuthClient>,
|
|
91
|
+
() => Boolean(userId() && query?.accountId),
|
|
92
|
+
() => queryOptionsRest
|
|
93
|
+
)
|
|
94
|
+
}
|