@better-auth-ui/react 1.6.1 → 1.6.3

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.
Files changed (302) hide show
  1. package/dist/components/auth/auth-provider.d.ts +4 -3
  2. package/dist/components/auth/auth-provider.js +24 -40
  3. package/dist/components/email/email-changed.d.ts +2 -2
  4. package/dist/components/email/email-changed.js +154 -68
  5. package/dist/components/email/email-localization.js +18 -23
  6. package/dist/components/email/email-styles.js +52 -77
  7. package/dist/components/email/email-verification.d.ts +2 -2
  8. package/dist/components/email/email-verification.js +138 -73
  9. package/dist/components/email/index.d.ts +9 -9
  10. package/dist/components/email/index.js +9 -9
  11. package/dist/components/email/magic-link.d.ts +2 -2
  12. package/dist/components/email/magic-link.js +139 -70
  13. package/dist/components/email/new-device.d.ts +2 -2
  14. package/dist/components/email/new-device.js +221 -88
  15. package/dist/components/email/otp-email.d.ts +2 -2
  16. package/dist/components/email/otp-email.js +127 -63
  17. package/dist/components/email/password-changed.d.ts +2 -2
  18. package/dist/components/email/password-changed.js +157 -74
  19. package/dist/components/email/reset-password.d.ts +2 -2
  20. package/dist/components/email/reset-password.js +138 -66
  21. package/dist/components/icons/apple.d.ts +1 -1
  22. package/dist/components/icons/apple.js +16 -9
  23. package/dist/components/icons/atlassian.d.ts +1 -1
  24. package/dist/components/icons/atlassian.js +38 -13
  25. package/dist/components/icons/cognito.d.ts +1 -1
  26. package/dist/components/icons/cognito.js +19 -9
  27. package/dist/components/icons/discord.d.ts +1 -1
  28. package/dist/components/icons/discord.js +16 -9
  29. package/dist/components/icons/dropbox.d.ts +1 -1
  30. package/dist/components/icons/dropbox.js +16 -9
  31. package/dist/components/icons/facebook.d.ts +1 -1
  32. package/dist/components/icons/facebook.js +19 -11
  33. package/dist/components/icons/figma.d.ts +1 -1
  34. package/dist/components/icons/figma.js +34 -12
  35. package/dist/components/icons/github.d.ts +1 -1
  36. package/dist/components/icons/github.js +16 -11
  37. package/dist/components/icons/gitlab.d.ts +1 -1
  38. package/dist/components/icons/gitlab.js +30 -9
  39. package/dist/components/icons/google.d.ts +1 -1
  40. package/dist/components/icons/google.js +39 -9
  41. package/dist/components/icons/huggingface.d.ts +1 -1
  42. package/dist/components/icons/huggingface.js +38 -9
  43. package/dist/components/icons/index.d.ts +35 -35
  44. package/dist/components/icons/index.js +35 -35
  45. package/dist/components/icons/kakao.d.ts +1 -1
  46. package/dist/components/icons/kakao.js +16 -11
  47. package/dist/components/icons/kick.d.ts +1 -1
  48. package/dist/components/icons/kick.js +20 -11
  49. package/dist/components/icons/line.d.ts +1 -1
  50. package/dist/components/icons/line.js +16 -9
  51. package/dist/components/icons/linear.d.ts +1 -1
  52. package/dist/components/icons/linear.js +16 -9
  53. package/dist/components/icons/linkedin.d.ts +1 -1
  54. package/dist/components/icons/linkedin.js +33 -9
  55. package/dist/components/icons/microsoft.d.ts +1 -1
  56. package/dist/components/icons/microsoft.js +30 -9
  57. package/dist/components/icons/naver.d.ts +1 -1
  58. package/dist/components/icons/naver.js +16 -9
  59. package/dist/components/icons/notion.d.ts +1 -1
  60. package/dist/components/icons/notion.js +16 -9
  61. package/dist/components/icons/paybin.d.ts +1 -1
  62. package/dist/components/icons/paybin.js +32 -8
  63. package/dist/components/icons/paypal.d.ts +1 -1
  64. package/dist/components/icons/paypal.js +30 -9
  65. package/dist/components/icons/polar.d.ts +1 -1
  66. package/dist/components/icons/polar.js +24 -9
  67. package/dist/components/icons/railway.d.ts +1 -1
  68. package/dist/components/icons/railway.js +16 -9
  69. package/dist/components/icons/reddit.d.ts +1 -1
  70. package/dist/components/icons/reddit.js +21 -9
  71. package/dist/components/icons/roblox.d.ts +1 -1
  72. package/dist/components/icons/roblox.js +17 -12
  73. package/dist/components/icons/salesforce.d.ts +1 -1
  74. package/dist/components/icons/salesforce.js +16 -9
  75. package/dist/components/icons/slack.d.ts +1 -1
  76. package/dist/components/icons/slack.js +30 -9
  77. package/dist/components/icons/spotify.d.ts +1 -1
  78. package/dist/components/icons/spotify.js +16 -9
  79. package/dist/components/icons/tiktok.d.ts +1 -1
  80. package/dist/components/icons/tiktok.js +23 -10
  81. package/dist/components/icons/twitch.d.ts +1 -1
  82. package/dist/components/icons/twitch.js +43 -12
  83. package/dist/components/icons/vercel.d.ts +1 -1
  84. package/dist/components/icons/vercel.js +16 -9
  85. package/dist/components/icons/vk.d.ts +1 -1
  86. package/dist/components/icons/vk.js +16 -9
  87. package/dist/components/icons/wechat.d.ts +1 -1
  88. package/dist/components/icons/wechat.js +16 -9
  89. package/dist/components/icons/x.d.ts +1 -1
  90. package/dist/components/icons/x.js +16 -9
  91. package/dist/components/icons/zoom.d.ts +1 -1
  92. package/dist/components/icons/zoom.js +69 -11
  93. package/dist/components/settings/account/theme-preview.js +286 -7
  94. package/dist/core.d.ts +1 -1
  95. package/dist/hooks/auth/use-authenticate.d.ts +30 -6
  96. package/dist/hooks/auth/use-authenticate.js +22 -27
  97. package/dist/hooks/auth/use-is-username-available.d.ts +20 -0
  98. package/dist/hooks/auth/use-is-username-available.js +13 -0
  99. package/dist/hooks/auth/use-request-password-reset.d.ts +12 -17
  100. package/dist/hooks/auth/use-request-password-reset.js +12 -13
  101. package/dist/hooks/auth/use-reset-password.d.ts +14 -31
  102. package/dist/hooks/auth/use-reset-password.js +12 -12
  103. package/dist/hooks/auth/use-send-verification-email.d.ts +11 -16
  104. package/dist/hooks/auth/use-send-verification-email.js +12 -12
  105. package/dist/hooks/auth/use-session.d.ts +31 -5
  106. package/dist/hooks/auth/use-session.js +15 -17
  107. package/dist/hooks/auth/use-sign-in-email.d.ts +12 -39
  108. package/dist/hooks/auth/use-sign-in-email.js +16 -24
  109. package/dist/hooks/auth/use-sign-in-magic-link.d.ts +15 -20
  110. package/dist/hooks/auth/use-sign-in-magic-link.js +12 -12
  111. package/dist/hooks/auth/use-sign-in-passkey.d.ts +13 -50
  112. package/dist/hooks/auth/use-sign-in-passkey.js +16 -24
  113. package/dist/hooks/auth/use-sign-in-social.d.ts +32 -62
  114. package/dist/hooks/auth/use-sign-in-social.js +12 -12
  115. package/dist/hooks/auth/use-sign-in-username.d.ts +25 -0
  116. package/dist/hooks/auth/use-sign-in-username.js +17 -0
  117. package/dist/hooks/auth/use-sign-out.d.ts +11 -12
  118. package/dist/hooks/auth/use-sign-out.js +15 -23
  119. package/dist/hooks/auth/use-sign-up-email.d.ts +178 -262
  120. package/dist/hooks/auth/use-sign-up-email.js +16 -24
  121. package/dist/hooks/auth/use-user.d.ts +63 -61
  122. package/dist/hooks/auth/use-user.js +10 -13
  123. package/dist/hooks/settings/use-account-info.d.ts +12 -12
  124. package/dist/hooks/settings/use-account-info.js +17 -24
  125. package/dist/hooks/settings/use-add-passkey.d.ts +11 -33
  126. package/dist/hooks/settings/use-add-passkey.js +16 -23
  127. package/dist/hooks/settings/use-change-email.d.ts +12 -15
  128. package/dist/hooks/settings/use-change-email.js +16 -22
  129. package/dist/hooks/settings/use-change-password.d.ts +12 -45
  130. package/dist/hooks/settings/use-change-password.js +12 -10
  131. package/dist/hooks/settings/use-delete-passkey.d.ts +11 -13
  132. package/dist/hooks/settings/use-delete-passkey.js +16 -23
  133. package/dist/hooks/settings/use-delete-user.d.ts +14 -32
  134. package/dist/hooks/settings/use-delete-user.js +12 -10
  135. package/dist/hooks/settings/use-link-social.d.ts +23 -26
  136. package/dist/hooks/settings/use-link-social.js +12 -9
  137. package/dist/hooks/settings/use-list-accounts.d.ts +10 -8
  138. package/dist/hooks/settings/use-list-accounts.js +14 -22
  139. package/dist/hooks/settings/use-list-device-sessions.d.ts +30 -7
  140. package/dist/hooks/settings/use-list-device-sessions.js +14 -21
  141. package/dist/hooks/settings/use-list-sessions.d.ts +10 -7
  142. package/dist/hooks/settings/use-list-sessions.js +14 -21
  143. package/dist/hooks/settings/use-list-user-passkeys.d.ts +9 -6
  144. package/dist/hooks/settings/use-list-user-passkeys.js +14 -21
  145. package/dist/hooks/settings/use-revoke-multi-session.d.ts +12 -12
  146. package/dist/hooks/settings/use-revoke-multi-session.js +16 -19
  147. package/dist/hooks/settings/use-revoke-session.d.ts +12 -12
  148. package/dist/hooks/settings/use-revoke-session.js +16 -20
  149. package/dist/hooks/settings/use-set-active-session.d.ts +13 -30
  150. package/dist/hooks/settings/use-set-active-session.js +19 -27
  151. package/dist/hooks/settings/use-unlink-account.d.ts +13 -13
  152. package/dist/hooks/settings/use-unlink-account.js +16 -20
  153. package/dist/hooks/settings/use-update-user.d.ts +1179 -5
  154. package/dist/hooks/settings/use-update-user.js +23 -28
  155. package/dist/hooks/use-auth-mutation.d.ts +12 -0
  156. package/dist/hooks/use-auth-mutation.js +11 -0
  157. package/dist/hooks/use-auth-query.d.ts +14 -0
  158. package/dist/hooks/use-auth-query.js +15 -0
  159. package/dist/index.d.ts +40 -36
  160. package/dist/index.js +84 -36
  161. package/dist/lib/auth-client.d.ts +1254 -1254
  162. package/dist/lib/auth-client.js +11 -11
  163. package/dist/lib/auth-config.d.ts +3 -3
  164. package/dist/lib/auth-context.d.ts +2 -2
  165. package/dist/lib/auth-context.js +5 -2
  166. package/dist/lib/provider-icons.d.ts +2 -2
  167. package/dist/lib/provider-icons.js +75 -47
  168. package/dist/lib/utils.d.ts +1 -1
  169. package/dist/lib/utils.js +7 -4
  170. package/dist/mutations/auth/is-username-available-options.d.ts +19 -0
  171. package/dist/mutations/auth/is-username-available-options.js +7 -0
  172. package/dist/mutations/auth/request-password-reset-options.d.ts +15 -0
  173. package/dist/mutations/auth/request-password-reset-options.js +7 -0
  174. package/dist/mutations/auth/reset-password-options.d.ts +17 -0
  175. package/dist/mutations/auth/reset-password-options.js +7 -0
  176. package/dist/mutations/auth/send-verification-email-options.d.ts +15 -0
  177. package/dist/mutations/auth/send-verification-email-options.js +7 -0
  178. package/dist/mutations/auth/sign-in-email-options.d.ts +23 -0
  179. package/dist/mutations/auth/sign-in-email-options.js +11 -0
  180. package/dist/mutations/auth/sign-in-magic-link-options.d.ts +23 -0
  181. package/dist/mutations/auth/sign-in-magic-link-options.js +11 -0
  182. package/dist/mutations/auth/sign-in-passkey-options.d.ts +15 -0
  183. package/dist/mutations/auth/sign-in-passkey-options.js +11 -0
  184. package/dist/mutations/auth/sign-in-social-options.d.ts +61 -0
  185. package/dist/mutations/auth/sign-in-social-options.js +11 -0
  186. package/dist/mutations/auth/sign-in-username-options.d.ts +19 -0
  187. package/dist/mutations/auth/sign-in-username-options.js +11 -0
  188. package/dist/mutations/auth/sign-out-options.d.ts +12 -0
  189. package/dist/mutations/auth/sign-out-options.js +7 -0
  190. package/dist/mutations/auth/sign-up-email-options.d.ts +1180 -0
  191. package/dist/mutations/auth/sign-up-email-options.js +11 -0
  192. package/dist/mutations/auth-mutation-options.d.ts +25 -0
  193. package/dist/mutations/auth-mutation-options.js +19 -0
  194. package/dist/mutations/settings/add-passkey-options.d.ts +15 -0
  195. package/dist/mutations/settings/add-passkey-options.js +11 -0
  196. package/dist/mutations/settings/change-email-options.d.ts +15 -0
  197. package/dist/mutations/settings/change-email-options.js +7 -0
  198. package/dist/mutations/settings/change-password-options.d.ts +17 -0
  199. package/dist/mutations/settings/change-password-options.js +7 -0
  200. package/dist/mutations/settings/delete-passkey-options.d.ts +13 -0
  201. package/dist/mutations/settings/delete-passkey-options.js +11 -0
  202. package/dist/mutations/settings/delete-user-options.d.ts +20 -0
  203. package/dist/mutations/settings/delete-user-options.js +7 -0
  204. package/dist/mutations/settings/link-social-options.d.ts +39 -0
  205. package/dist/mutations/settings/link-social-options.js +7 -0
  206. package/dist/mutations/settings/revoke-multi-session-options.d.ts +13 -0
  207. package/dist/mutations/settings/revoke-multi-session-options.js +11 -0
  208. package/dist/mutations/settings/revoke-session-options.d.ts +13 -0
  209. package/dist/mutations/settings/revoke-session-options.js +7 -0
  210. package/dist/mutations/settings/set-active-session-options.d.ts +13 -0
  211. package/dist/mutations/settings/set-active-session-options.js +11 -0
  212. package/dist/mutations/settings/unlink-account-options.d.ts +15 -0
  213. package/dist/mutations/settings/unlink-account-options.js +7 -0
  214. package/dist/mutations/settings/update-user-options.d.ts +1182 -0
  215. package/dist/mutations/settings/update-user-options.js +7 -0
  216. package/dist/queries/auth/session-options.d.ts +110 -0
  217. package/dist/queries/auth/session-options.js +7 -0
  218. package/dist/queries/auth-query-options.d.ts +29 -0
  219. package/dist/queries/auth-query-options.js +17 -0
  220. package/dist/queries/settings/account-info-options.d.ts +32 -0
  221. package/dist/queries/settings/account-info-options.js +12 -0
  222. package/dist/queries/settings/list-accounts-options.d.ts +53 -0
  223. package/dist/queries/settings/list-accounts-options.js +12 -0
  224. package/dist/queries/settings/list-device-sessions-options.d.ts +99 -0
  225. package/dist/queries/settings/list-device-sessions-options.js +12 -0
  226. package/dist/queries/settings/list-sessions-options.d.ts +54 -0
  227. package/dist/queries/settings/list-sessions-options.js +12 -0
  228. package/dist/queries/settings/list-user-passkeys-options.d.ts +18 -0
  229. package/dist/queries/settings/list-user-passkeys-options.js +12 -0
  230. package/package.json +11 -11
  231. package/src/components/auth/auth-provider.tsx +4 -6
  232. package/src/hooks/auth/use-authenticate.ts +8 -9
  233. package/src/hooks/auth/use-is-username-available.ts +31 -0
  234. package/src/hooks/auth/use-request-password-reset.ts +20 -11
  235. package/src/hooks/auth/use-reset-password.ts +20 -12
  236. package/src/hooks/auth/use-send-verification-email.ts +19 -11
  237. package/src/hooks/auth/use-session.ts +22 -17
  238. package/src/hooks/auth/use-sign-in-email.ts +24 -19
  239. package/src/hooks/auth/use-sign-in-magic-link.ts +19 -13
  240. package/src/hooks/auth/use-sign-in-passkey.ts +24 -18
  241. package/src/hooks/auth/use-sign-in-social.ts +19 -11
  242. package/src/hooks/auth/use-sign-in-username.ts +40 -0
  243. package/src/hooks/auth/use-sign-out.ts +20 -20
  244. package/src/hooks/auth/use-sign-up-email.ts +25 -21
  245. package/src/hooks/auth/use-user.ts +7 -9
  246. package/src/hooks/settings/use-account-info.ts +31 -21
  247. package/src/hooks/settings/use-add-passkey.ts +22 -17
  248. package/src/hooks/settings/use-change-email.ts +24 -20
  249. package/src/hooks/settings/use-change-password.ts +19 -11
  250. package/src/hooks/settings/use-delete-passkey.ts +21 -16
  251. package/src/hooks/settings/use-delete-user.ts +19 -11
  252. package/src/hooks/settings/use-link-social.ts +20 -10
  253. package/src/hooks/settings/use-list-accounts.ts +28 -16
  254. package/src/hooks/settings/use-list-device-sessions.ts +29 -22
  255. package/src/hooks/settings/use-list-sessions.ts +28 -15
  256. package/src/hooks/settings/use-list-user-passkeys.ts +28 -17
  257. package/src/hooks/settings/use-revoke-multi-session.ts +28 -19
  258. package/src/hooks/settings/use-revoke-session.ts +26 -18
  259. package/src/hooks/settings/use-set-active-session.ts +40 -28
  260. package/src/hooks/settings/use-unlink-account.ts +23 -17
  261. package/src/hooks/settings/use-update-user.ts +33 -27
  262. package/src/hooks/use-auth-mutation.ts +29 -0
  263. package/src/hooks/use-auth-query.ts +36 -0
  264. package/src/index.ts +4 -0
  265. package/src/lib/auth-config.ts +1 -1
  266. package/src/mutations/auth/is-username-available-options.ts +18 -0
  267. package/src/mutations/auth/request-password-reset-options.ts +14 -0
  268. package/src/mutations/auth/reset-password-options.ts +14 -0
  269. package/src/mutations/auth/send-verification-email-options.ts +14 -0
  270. package/src/mutations/auth/sign-in-email-options.ts +19 -0
  271. package/src/mutations/auth/sign-in-magic-link-options.ts +15 -0
  272. package/src/mutations/auth/sign-in-passkey-options.ts +15 -0
  273. package/src/mutations/auth/sign-in-social-options.ts +19 -0
  274. package/src/mutations/auth/sign-in-username-options.ts +15 -0
  275. package/src/mutations/auth/sign-out-options.ts +11 -0
  276. package/src/mutations/auth/sign-up-email-options.ts +15 -0
  277. package/src/mutations/auth-mutation-options.ts +49 -0
  278. package/src/mutations/settings/add-passkey-options.ts +15 -0
  279. package/src/mutations/settings/change-email-options.ts +11 -0
  280. package/src/mutations/settings/change-password-options.ts +14 -0
  281. package/src/mutations/settings/delete-passkey-options.ts +15 -0
  282. package/src/mutations/settings/delete-user-options.ts +11 -0
  283. package/src/mutations/settings/link-social-options.ts +11 -0
  284. package/src/mutations/settings/revoke-multi-session-options.ts +15 -0
  285. package/src/mutations/settings/revoke-session-options.ts +14 -0
  286. package/src/mutations/settings/set-active-session-options.ts +15 -0
  287. package/src/mutations/settings/unlink-account-options.ts +14 -0
  288. package/src/mutations/settings/update-user-options.ts +15 -0
  289. package/src/queries/auth/session-options.ts +18 -0
  290. package/src/queries/auth-query-options.ts +34 -0
  291. package/src/queries/settings/account-info-options.ts +25 -0
  292. package/src/queries/settings/list-accounts-options.ts +26 -0
  293. package/src/queries/settings/list-device-sessions-options.ts +24 -0
  294. package/src/queries/settings/list-sessions-options.ts +23 -0
  295. package/src/queries/settings/list-user-passkeys-options.ts +23 -0
  296. package/dist/hooks/auth/use-auth-mutation.d.ts +0 -18
  297. package/dist/hooks/auth/use-auth-mutation.js +0 -10
  298. package/dist/hooks/auth/use-auth-query.d.ts +0 -24
  299. package/dist/hooks/auth/use-auth-query.js +0 -10
  300. package/dist/lib/auth-config.js +0 -1
  301. package/src/hooks/auth/use-auth-mutation.ts +0 -56
  302. package/src/hooks/auth/use-auth-query.ts +0 -50
@@ -1,24 +1,33 @@
1
- import {
2
- type AuthClient,
3
- useAuth,
4
- useAuthMutation
5
- } from "@better-auth-ui/react"
6
- import type { UseAuthMutationOptions } from "./use-auth-mutation"
1
+ import { useMutation } from "@tanstack/react-query"
7
2
 
8
- export { useAuthMutation } from "./use-auth-mutation"
3
+ import { useAuth } from "../../components/auth/auth-provider"
4
+ import type { AuthClient } from "../../lib/auth-client"
5
+ import { requestPasswordResetOptions } from "../../mutations/auth/request-password-reset-options"
6
+
7
+ export type UseRequestPasswordResetParams = NonNullable<
8
+ Parameters<AuthClient["requestPasswordReset"]>[0]
9
+ >
10
+
11
+ export type UseRequestPasswordResetOptions = Omit<
12
+ ReturnType<typeof requestPasswordResetOptions>,
13
+ "mutationKey" | "mutationFn"
14
+ >
9
15
 
10
16
  /**
11
17
  * Hook that creates a mutation for the forgot-password flow.
12
18
  *
13
- * The mutation sends a password reset request for the submitted email,
14
- * and navigates to the sign-in view on success.
19
+ * Sends a password reset email for the provided address.
15
20
  *
21
+ * @param options - React Query options forwarded to `useMutation`.
16
22
  * @returns The `useMutation` result.
17
23
  */
18
24
  export function useRequestPasswordReset(
19
- options?: UseAuthMutationOptions<AuthClient["requestPasswordReset"]>
25
+ options?: UseRequestPasswordResetOptions
20
26
  ) {
21
27
  const { authClient } = useAuth()
22
28
 
23
- return useAuthMutation({ authFn: authClient.requestPasswordReset, options })
29
+ return useMutation({
30
+ ...requestPasswordResetOptions(authClient),
31
+ ...options
32
+ })
24
33
  }
@@ -1,23 +1,31 @@
1
- import {
2
- type AuthClient,
3
- useAuth,
4
- useAuthMutation
5
- } from "@better-auth-ui/react"
6
- import type { UseAuthMutationOptions } from "./use-auth-mutation"
1
+ import { useMutation } from "@tanstack/react-query"
7
2
 
8
- export { useAuthMutation } from "./use-auth-mutation"
3
+ import { useAuth } from "../../components/auth/auth-provider"
4
+ import type { AuthClient } from "../../lib/auth-client"
5
+ import { resetPasswordOptions } from "../../mutations/auth/reset-password-options"
6
+
7
+ export type UseResetPasswordParams = NonNullable<
8
+ Parameters<AuthClient["resetPassword"]>[0]
9
+ >
10
+
11
+ export type UseResetPasswordOptions = Omit<
12
+ ReturnType<typeof resetPasswordOptions>,
13
+ "mutationKey" | "mutationFn"
14
+ >
9
15
 
10
16
  /**
11
17
  * Hook that creates a mutation for the reset-password flow.
12
18
  *
13
- * The mutation resets the user's password using the provided token and new password.
19
+ * Resets the user's password using the provided token and new password.
14
20
  *
21
+ * @param options - React Query options forwarded to `useMutation`.
15
22
  * @returns The `useMutation` result.
16
23
  */
17
- export function useResetPassword(
18
- options?: UseAuthMutationOptions<AuthClient["resetPassword"]>
19
- ) {
24
+ export function useResetPassword(options?: UseResetPasswordOptions) {
20
25
  const { authClient } = useAuth()
21
26
 
22
- return useAuthMutation({ authFn: authClient.resetPassword, options })
27
+ return useMutation({
28
+ ...resetPasswordOptions(authClient),
29
+ ...options
30
+ })
23
31
  }
@@ -1,23 +1,31 @@
1
- import {
2
- type AuthClient,
3
- useAuth,
4
- useAuthMutation
5
- } from "@better-auth-ui/react"
6
- import type { UseAuthMutationOptions } from "./use-auth-mutation"
1
+ import { useMutation } from "@tanstack/react-query"
7
2
 
8
- export { useAuthMutation } from "./use-auth-mutation"
3
+ import { useAuth } from "../../components/auth/auth-provider"
4
+ import type { AuthClient } from "../../lib/auth-client"
5
+ import { sendVerificationEmailOptions } from "../../mutations/auth/send-verification-email-options"
6
+
7
+ export type UseSendVerificationEmailParams = NonNullable<
8
+ Parameters<AuthClient["sendVerificationEmail"]>[0]
9
+ >
10
+
11
+ export type UseSendVerificationEmailOptions = Omit<
12
+ ReturnType<typeof sendVerificationEmailOptions>,
13
+ "mutationKey" | "mutationFn"
14
+ >
9
15
 
10
16
  /**
11
17
  * Hook that creates a mutation to send a verification email.
12
18
  *
13
- * The mutation sends a verification email to the specified email address.
14
- *
19
+ * @param options - React Query options forwarded to `useMutation`.
15
20
  * @returns The `useMutation` result.
16
21
  */
17
22
  export function useSendVerificationEmail(
18
- options?: UseAuthMutationOptions<AuthClient["sendVerificationEmail"]>
23
+ options?: UseSendVerificationEmailOptions
19
24
  ) {
20
25
  const { authClient } = useAuth()
21
26
 
22
- return useAuthMutation({ authFn: authClient.sendVerificationEmail, options })
27
+ return useMutation({
28
+ ...sendVerificationEmailOptions(authClient),
29
+ ...options
30
+ })
23
31
  }
@@ -1,26 +1,31 @@
1
- import { type AuthClient, useAuth } from "@better-auth-ui/react"
2
- import {
3
- type UseAuthQueryOptions,
4
- type UseAuthQueryResult,
5
- useAuthQuery
6
- } from "./use-auth-query"
1
+ import { useQuery } from "@tanstack/react-query"
2
+ import { useAuth } from "../../components/auth/auth-provider"
3
+ import type { AuthClient } from "../../lib/auth-client"
4
+ import { sessionOptions } from "../../queries/auth/session-options"
5
+
6
+ export type UseSessionParams = NonNullable<
7
+ Parameters<AuthClient["getSession"]>[0]
8
+ >
9
+
10
+ export type UseSessionOptions = Omit<
11
+ ReturnType<typeof sessionOptions>,
12
+ "queryKey" | "queryFn"
13
+ > &
14
+ UseSessionParams
7
15
 
8
16
  /**
9
17
  * Retrieve the current authentication session.
10
18
  *
11
- * @param options - Options to merge into the React Query configuration for the session query.
12
- * @returns The React Query result for the session query: `data` contains session information, `isLoading`/`isFetching` indicate loading state, and `error` contains any fetch error.
19
+ * @param options - Better Auth params (`query`, `fetchOptions`) and React
20
+ * Query options forwarded to `useQuery`.
21
+ * @returns React Query result for the session.
13
22
  */
14
- export function useSession(
15
- options?: Partial<UseAuthQueryOptions<AuthClient["getSession"]>>
16
- ): UseAuthQueryResult<AuthClient["getSession"]> {
23
+ export function useSession(options?: UseSessionOptions) {
17
24
  const { authClient } = useAuth()
25
+ const { query, fetchOptions, ...queryOptions } = options ?? {}
18
26
 
19
- return useAuthQuery({
20
- authFn: authClient.getSession,
21
- options: {
22
- queryKey: ["auth", "getSession"],
23
- ...options
24
- }
27
+ return useQuery({
28
+ ...sessionOptions(authClient, { query, fetchOptions }),
29
+ ...queryOptions
25
30
  })
26
31
  }
@@ -1,13 +1,18 @@
1
- import {
2
- type AuthClient,
3
- useAuth,
4
- useAuthMutation
5
- } from "@better-auth-ui/react"
6
- import { useQueryClient } from "@tanstack/react-query"
1
+ import { useMutation, useQueryClient } from "@tanstack/react-query"
7
2
 
8
- import type { UseAuthMutationOptions } from "./use-auth-mutation"
3
+ import { useAuth } from "../../components/auth/auth-provider"
4
+ import type { AuthClient } from "../../lib/auth-client"
5
+ import { signInEmailOptions } from "../../mutations/auth/sign-in-email-options"
6
+ import { sessionOptions } from "../../queries/auth/session-options"
9
7
 
10
- export { useAuthMutation } from "./use-auth-mutation"
8
+ export type UseSignInEmailParams = NonNullable<
9
+ Parameters<AuthClient["signIn"]["email"]>[0]
10
+ >
11
+
12
+ export type UseSignInEmailOptions = Omit<
13
+ ReturnType<typeof signInEmailOptions>,
14
+ "mutationKey" | "mutationFn"
15
+ >
11
16
 
12
17
  /**
13
18
  * Hook that creates a mutation for email/password sign-in.
@@ -15,22 +20,22 @@ export { useAuthMutation } from "./use-auth-mutation"
15
20
  * The mutation sends an email/password sign-in request and
16
21
  * refetches the session on completion.
17
22
  *
23
+ * @param options - React Query options forwarded to `useMutation`.
18
24
  * @returns The `useMutation` result.
19
25
  */
20
- export function useSignInEmail(
21
- options?: UseAuthMutationOptions<AuthClient["signIn"]["email"]>
22
- ) {
26
+ export function useSignInEmail(options?: UseSignInEmailOptions) {
23
27
  const { authClient } = useAuth()
24
28
  const queryClient = useQueryClient()
25
29
 
26
- return useAuthMutation({
27
- authFn: authClient.signIn.email,
28
- options: {
29
- ...options,
30
- onSuccess: async (...args) => {
31
- queryClient.resetQueries({ queryKey: ["auth", "getSession"] })
32
- await options?.onSuccess?.(...args)
33
- }
30
+ return useMutation({
31
+ ...signInEmailOptions(authClient),
32
+ ...options,
33
+ onSuccess: async (...args) => {
34
+ queryClient.resetQueries({
35
+ queryKey: sessionOptions(authClient).queryKey
36
+ })
37
+
38
+ await options?.onSuccess?.(...args)
34
39
  }
35
40
  })
36
41
  }
@@ -1,23 +1,29 @@
1
- import {
2
- type AuthClient,
3
- useAuth,
4
- useAuthMutation
5
- } from "@better-auth-ui/react"
6
- import type { UseAuthMutationOptions } from "./use-auth-mutation"
1
+ import { useMutation } from "@tanstack/react-query"
7
2
 
8
- export { useAuthMutation } from "./use-auth-mutation"
3
+ import { useAuth } from "../../components/auth/auth-provider"
4
+ import type { AuthClient } from "../../lib/auth-client"
5
+ import { signInMagicLinkOptions } from "../../mutations/auth/sign-in-magic-link-options"
6
+
7
+ export type UseSignInMagicLinkParams = NonNullable<
8
+ Parameters<AuthClient["signIn"]["magicLink"]>[0]
9
+ >
10
+
11
+ export type UseSignInMagicLinkOptions = Omit<
12
+ ReturnType<typeof signInMagicLinkOptions>,
13
+ "mutationKey" | "mutationFn"
14
+ >
9
15
 
10
16
  /**
11
17
  * Hook that creates a mutation for magic-link sign-in.
12
18
  *
13
- * The mutation sends a magic-link sign-in email to the specified address.
14
- *
19
+ * @param options - React Query options forwarded to `useMutation`.
15
20
  * @returns The `useMutation` result.
16
21
  */
17
- export function useSignInMagicLink(
18
- options?: UseAuthMutationOptions<AuthClient["signIn"]["magicLink"]>
19
- ) {
22
+ export function useSignInMagicLink(options?: UseSignInMagicLinkOptions) {
20
23
  const { authClient } = useAuth()
21
24
 
22
- return useAuthMutation({ authFn: authClient.signIn.magicLink, options })
25
+ return useMutation({
26
+ ...signInMagicLinkOptions(authClient),
27
+ ...options
28
+ })
23
29
  }
@@ -1,34 +1,40 @@
1
- import { useQueryClient } from "@tanstack/react-query"
1
+ import { useMutation, useQueryClient } from "@tanstack/react-query"
2
2
 
3
3
  import { useAuth } from "../../components/auth/auth-provider"
4
4
  import type { AuthClient } from "../../lib/auth-client"
5
- import {
6
- type UseAuthMutationOptions,
7
- useAuthMutation
8
- } from "./use-auth-mutation"
5
+ import { signInPasskeyOptions } from "../../mutations/auth/sign-in-passkey-options"
6
+ import { sessionOptions } from "../../queries/auth/session-options"
7
+
8
+ export type UseSignInPasskeyParams = NonNullable<
9
+ Parameters<AuthClient["signIn"]["passkey"]>[0]
10
+ >
11
+
12
+ export type UseSignInPasskeyOptions = Omit<
13
+ ReturnType<typeof signInPasskeyOptions>,
14
+ "mutationKey" | "mutationFn"
15
+ >
9
16
 
10
17
  /**
11
18
  * Hook that creates a mutation for passkey sign-in.
12
19
  *
13
- * The mutation sends a passkey sign-in request and
14
- * refetches the session on completion.
20
+ * Resets the session query on completion so the new session is refetched.
15
21
  *
22
+ * @param options - React Query options forwarded to `useMutation`.
16
23
  * @returns The `useMutation` result.
17
24
  */
18
- export function useSignInPasskey(
19
- options?: UseAuthMutationOptions<AuthClient["signIn"]["passkey"]>
20
- ) {
25
+ export function useSignInPasskey(options?: UseSignInPasskeyOptions) {
21
26
  const { authClient } = useAuth()
22
27
  const queryClient = useQueryClient()
23
28
 
24
- return useAuthMutation({
25
- authFn: authClient.signIn.passkey,
26
- options: {
27
- ...options,
28
- onSuccess: async (...args) => {
29
- queryClient.resetQueries({ queryKey: ["auth", "getSession"] })
30
- await options?.onSuccess?.(...args)
31
- }
29
+ return useMutation({
30
+ ...signInPasskeyOptions(authClient),
31
+ ...options,
32
+ onSuccess: async (...args) => {
33
+ queryClient.resetQueries({
34
+ queryKey: sessionOptions(authClient).queryKey
35
+ })
36
+
37
+ await options?.onSuccess?.(...args)
32
38
  }
33
39
  })
34
40
  }
@@ -1,23 +1,31 @@
1
- import {
2
- type AuthClient,
3
- useAuth,
4
- useAuthMutation
5
- } from "@better-auth-ui/react"
6
- import type { UseAuthMutationOptions } from "./use-auth-mutation"
1
+ import { useMutation } from "@tanstack/react-query"
7
2
 
8
- export { useAuthMutation } from "./use-auth-mutation"
3
+ import { useAuth } from "../../components/auth/auth-provider"
4
+ import type { AuthClient } from "../../lib/auth-client"
5
+ import { signInSocialOptions } from "../../mutations/auth/sign-in-social-options"
6
+
7
+ export type UseSignInSocialParams = NonNullable<
8
+ Parameters<AuthClient["signIn"]["social"]>[0]
9
+ >
10
+
11
+ export type UseSignInSocialOptions = Omit<
12
+ ReturnType<typeof signInSocialOptions>,
13
+ "mutationKey" | "mutationFn"
14
+ >
9
15
 
10
16
  /**
11
17
  * Hook that creates a mutation for social sign-in.
12
18
  *
13
19
  * The mutation initiates a social sign-in flow with the specified provider.
14
20
  *
21
+ * @param options - React Query options forwarded to `useMutation`.
15
22
  * @returns The `useMutation` result.
16
23
  */
17
- export function useSignInSocial(
18
- options?: UseAuthMutationOptions<AuthClient["signIn"]["social"]>
19
- ) {
24
+ export function useSignInSocial(options?: UseSignInSocialOptions) {
20
25
  const { authClient } = useAuth()
21
26
 
22
- return useAuthMutation({ authFn: authClient.signIn.social, options })
27
+ return useMutation({
28
+ ...signInSocialOptions(authClient),
29
+ ...options
30
+ })
23
31
  }
@@ -0,0 +1,40 @@
1
+ import { useMutation, useQueryClient } from "@tanstack/react-query"
2
+
3
+ import { useAuth } from "../../components/auth/auth-provider"
4
+ import type { AuthClient } from "../../lib/auth-client"
5
+ import { signInUsernameOptions } from "../../mutations/auth/sign-in-username-options"
6
+ import { sessionOptions } from "../../queries/auth/session-options"
7
+
8
+ export type UseSignInUsernameParams = NonNullable<
9
+ Parameters<AuthClient["signIn"]["username"]>[0]
10
+ >
11
+
12
+ export type UseSignInUsernameOptions = Omit<
13
+ ReturnType<typeof signInUsernameOptions>,
14
+ "mutationKey" | "mutationFn"
15
+ >
16
+
17
+ /**
18
+ * Hook that creates a mutation for username/password sign-in.
19
+ *
20
+ * Resets the session query on completion so the new session is refetched.
21
+ *
22
+ * @param options - React Query options forwarded to `useMutation`.
23
+ * @returns The `useMutation` result.
24
+ */
25
+ export function useSignInUsername(options?: UseSignInUsernameOptions) {
26
+ const { authClient } = useAuth()
27
+ const queryClient = useQueryClient()
28
+
29
+ return useMutation({
30
+ ...signInUsernameOptions(authClient),
31
+ ...options,
32
+ onSuccess: async (...args) => {
33
+ queryClient.resetQueries({
34
+ queryKey: sessionOptions(authClient).queryKey
35
+ })
36
+
37
+ await options?.onSuccess?.(...args)
38
+ }
39
+ })
40
+ }
@@ -1,34 +1,34 @@
1
- import {
2
- type AuthClient,
3
- useAuth,
4
- useAuthMutation
5
- } from "@better-auth-ui/react"
6
- import { useQueryClient } from "@tanstack/react-query"
7
- import type { UseAuthMutationOptions } from "./use-auth-mutation"
1
+ import { useMutation, useQueryClient } from "@tanstack/react-query"
8
2
 
9
- export { useAuthMutation } from "./use-auth-mutation"
3
+ import { useAuth } from "../../components/auth/auth-provider"
4
+ import type { AuthClient } from "../../lib/auth-client"
5
+ import { signOutOptions } from "../../mutations/auth/sign-out-options"
6
+
7
+ export type UseSignOutParams = NonNullable<Parameters<AuthClient["signOut"]>[0]>
8
+
9
+ export type UseSignOutOptions = Omit<
10
+ ReturnType<typeof signOutOptions>,
11
+ "mutationKey" | "mutationFn"
12
+ >
10
13
 
11
14
  /**
12
15
  * Hook that creates a mutation for signing out.
13
16
  *
14
- * The mutation signs out the current user and removes auth queries from cache.
17
+ * Removes all cached auth queries on completion.
15
18
  *
19
+ * @param options - React Query options forwarded to `useMutation`.
16
20
  * @returns The `useMutation` result.
17
21
  */
18
- export function useSignOut(
19
- options?: UseAuthMutationOptions<AuthClient["signOut"]>
20
- ) {
22
+ export function useSignOut(options?: UseSignOutOptions) {
21
23
  const { authClient } = useAuth()
22
24
  const queryClient = useQueryClient()
23
25
 
24
- return useAuthMutation({
25
- authFn: authClient.signOut,
26
- options: {
27
- ...options,
28
- onSuccess: async (...args) => {
29
- queryClient.removeQueries({ queryKey: ["auth"] })
30
- await options?.onSuccess?.(...args)
31
- }
26
+ return useMutation({
27
+ ...signOutOptions(authClient),
28
+ ...options,
29
+ onSuccess: async (...args) => {
30
+ queryClient.removeQueries({ queryKey: ["auth"] })
31
+ await options?.onSuccess?.(...args)
32
32
  }
33
33
  })
34
34
  }
@@ -1,36 +1,40 @@
1
- import {
2
- type AuthClient,
3
- useAuth,
4
- useAuthMutation
5
- } from "@better-auth-ui/react"
6
- import { useQueryClient } from "@tanstack/react-query"
1
+ import { useMutation, useQueryClient } from "@tanstack/react-query"
7
2
 
8
- import type { UseAuthMutationOptions } from "./use-auth-mutation"
3
+ import { useAuth } from "../../components/auth/auth-provider"
4
+ import type { AuthClient } from "../../lib/auth-client"
5
+ import { signUpEmailOptions } from "../../mutations/auth/sign-up-email-options"
6
+ import { sessionOptions } from "../../queries/auth/session-options"
9
7
 
10
- export { useAuthMutation } from "./use-auth-mutation"
8
+ export type UseSignUpEmailParams = NonNullable<
9
+ Parameters<AuthClient["signUp"]["email"]>[0]
10
+ >
11
+
12
+ export type UseSignUpEmailOptions = Omit<
13
+ ReturnType<typeof signUpEmailOptions>,
14
+ "mutationKey" | "mutationFn"
15
+ >
11
16
 
12
17
  /**
13
18
  * Hook that creates a mutation for email/password sign-up.
14
19
  *
15
- * The mutation sends an email/password sign-up request and
16
- * refetches the session on success.
20
+ * Resets the session query on success so the new session is refetched.
17
21
  *
22
+ * @param options - React Query options forwarded to `useMutation`.
18
23
  * @returns The `useMutation` result.
19
24
  */
20
- export function useSignUpEmail(
21
- options?: UseAuthMutationOptions<AuthClient["signUp"]["email"]>
22
- ) {
25
+ export function useSignUpEmail(options?: UseSignUpEmailOptions) {
23
26
  const { authClient } = useAuth()
24
27
  const queryClient = useQueryClient()
25
28
 
26
- return useAuthMutation({
27
- authFn: authClient.signUp.email,
28
- options: {
29
- ...options,
30
- onSuccess: async (...args) => {
31
- queryClient.resetQueries({ queryKey: ["auth", "getSession"] })
32
- await options?.onSuccess?.(...args)
33
- }
29
+ return useMutation({
30
+ ...signUpEmailOptions(authClient),
31
+ ...options,
32
+ onSuccess: async (...args) => {
33
+ queryClient.resetQueries({
34
+ queryKey: sessionOptions(authClient).queryKey
35
+ })
36
+
37
+ await options?.onSuccess?.(...args)
34
38
  }
35
39
  })
36
40
  }
@@ -1,17 +1,15 @@
1
- import type { AuthClient } from "@better-auth-ui/react"
2
- import type { UseAuthQueryOptions } from "./use-auth-query"
3
-
4
- import { useSession } from "./use-session"
1
+ import { type UseSessionOptions, useSession } from "./use-session"
5
2
 
6
3
  /**
7
4
  * Retrieve the current authenticated user.
8
5
  *
9
- * @param options - Options to merge into the React Query configuration for the session query.
10
- * @returns The React Query result with `data` containing the user object from the session.
6
+ * Thin wrapper over `useSession` that returns `session.user` as `data`.
7
+ *
8
+ * @param options - Better Auth params (`query`, `fetchOptions`) and React
9
+ * Query options forwarded to `useQuery`.
10
+ * @returns React Query result with `data` narrowed to the user object.
11
11
  */
12
- export function useUser(
13
- options?: Partial<UseAuthQueryOptions<AuthClient["getSession"]>>
14
- ) {
12
+ export function useUser(options?: UseSessionOptions) {
15
13
  const { data, ...rest } = useSession(options)
16
14
 
17
15
  return {
@@ -1,30 +1,40 @@
1
- import { type AuthClient, useAuth } from "@better-auth-ui/react"
2
- import { type UseAuthQueryOptions, useAuthQuery } from "../auth/use-auth-query"
1
+ import { skipToken, useQuery } from "@tanstack/react-query"
2
+ import { useAuth } from "../../components/auth/auth-provider"
3
+ import type { AuthClient } from "../../lib/auth-client"
4
+ import { accountInfoOptions } from "../../queries/settings/account-info-options"
5
+ import { useSession } from "../auth/use-session"
6
+
7
+ export type UseAccountInfoParams = NonNullable<
8
+ Parameters<AuthClient["accountInfo"]>[0]
9
+ >
10
+
11
+ export type UseAccountInfoOptions = Omit<
12
+ ReturnType<typeof accountInfoOptions>,
13
+ "queryKey" | "queryFn"
14
+ > &
15
+ UseAccountInfoParams
3
16
 
4
17
  /**
5
- * Retrieve provider-specific account info for a given account ID.
18
+ * Retrieve provider-specific info for a linked account.
6
19
  *
7
- * Uses the `accountInfo` API endpoint to fetch detailed information
8
- * from the social provider. The provider is automatically detected
9
- * from the account ID.
20
+ * Keyed per-user; waits for the active session and `options.query.accountId`
21
+ * before firing.
10
22
  *
11
- * @param accountId - The provider-given account ID to fetch info for
12
- * @param options - Optional react-query options forwarded to `useQuery`
13
- * @returns The react-query result containing account info data, loading state, and error state
23
+ * @param options - Better Auth params (`query`, `fetchOptions`) and React
24
+ * Query options forwarded to `useQuery`.
14
25
  */
15
- export function useAccountInfo(
16
- accountId?: string,
17
- options?: Partial<UseAuthQueryOptions<AuthClient["accountInfo"]>>
18
- ) {
26
+ export function useAccountInfo(options?: UseAccountInfoOptions) {
19
27
  const { authClient } = useAuth()
28
+ const { data: session } = useSession({ refetchOnMount: false })
29
+ const userId = session?.user.id
30
+
31
+ const { query, fetchOptions, ...queryOptions } = options ?? {}
32
+ const accountId = query?.accountId
33
+ const disabled = !userId || !accountId
20
34
 
21
- return useAuthQuery({
22
- authFn: authClient.accountInfo,
23
- params: { query: { accountId } },
24
- options: {
25
- queryKey: ["auth", "accountInfo", accountId],
26
- enabled: !!accountId,
27
- ...options
28
- }
35
+ return useQuery({
36
+ ...accountInfoOptions(authClient, userId, { query, fetchOptions }),
37
+ ...(disabled && { queryFn: skipToken }),
38
+ ...queryOptions
29
39
  })
30
40
  }