@sudobility/wildduck_client 0.0.14

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 (254) hide show
  1. package/README.md +354 -0
  2. package/dist/hooks/ServiceProvider.d.ts +15 -0
  3. package/dist/hooks/ServiceProvider.d.ts.map +1 -0
  4. package/dist/hooks/ServiceProvider.js +21 -0
  5. package/dist/hooks/ServiceProvider.js.map +1 -0
  6. package/dist/hooks/addresses/index.d.ts +2 -0
  7. package/dist/hooks/addresses/index.d.ts.map +1 -0
  8. package/dist/hooks/addresses/index.js +2 -0
  9. package/dist/hooks/addresses/index.js.map +1 -0
  10. package/dist/hooks/addresses/useWildduckGetAddresses.d.ts +232 -0
  11. package/dist/hooks/addresses/useWildduckGetAddresses.d.ts.map +1 -0
  12. package/dist/hooks/addresses/useWildduckGetAddresses.js +34 -0
  13. package/dist/hooks/addresses/useWildduckGetAddresses.js.map +1 -0
  14. package/dist/hooks/autoreply/index.d.ts +4 -0
  15. package/dist/hooks/autoreply/index.d.ts.map +1 -0
  16. package/dist/hooks/autoreply/index.js +4 -0
  17. package/dist/hooks/autoreply/index.js.map +1 -0
  18. package/dist/hooks/autoreply/useWildduckDeleteAutoreply.d.ts +13 -0
  19. package/dist/hooks/autoreply/useWildduckDeleteAutoreply.d.ts.map +1 -0
  20. package/dist/hooks/autoreply/useWildduckDeleteAutoreply.js +46 -0
  21. package/dist/hooks/autoreply/useWildduckDeleteAutoreply.js.map +1 -0
  22. package/dist/hooks/autoreply/useWildduckGetAutoreply.d.ts +172 -0
  23. package/dist/hooks/autoreply/useWildduckGetAutoreply.d.ts.map +1 -0
  24. package/dist/hooks/autoreply/useWildduckGetAutoreply.js +39 -0
  25. package/dist/hooks/autoreply/useWildduckGetAutoreply.js.map +1 -0
  26. package/dist/hooks/autoreply/useWildduckUpdateAutoreply.d.ts +13 -0
  27. package/dist/hooks/autoreply/useWildduckUpdateAutoreply.d.ts.map +1 -0
  28. package/dist/hooks/autoreply/useWildduckUpdateAutoreply.js +46 -0
  29. package/dist/hooks/autoreply/useWildduckUpdateAutoreply.js.map +1 -0
  30. package/dist/hooks/index.d.ts +19 -0
  31. package/dist/hooks/index.d.ts.map +1 -0
  32. package/dist/hooks/index.js +16 -0
  33. package/dist/hooks/index.js.map +1 -0
  34. package/dist/hooks/mailboxes/index.d.ts +6 -0
  35. package/dist/hooks/mailboxes/index.d.ts.map +1 -0
  36. package/dist/hooks/mailboxes/index.js +6 -0
  37. package/dist/hooks/mailboxes/index.js.map +1 -0
  38. package/dist/hooks/mailboxes/useWildduckCreateMailbox.d.ts +13 -0
  39. package/dist/hooks/mailboxes/useWildduckCreateMailbox.d.ts.map +1 -0
  40. package/dist/hooks/mailboxes/useWildduckCreateMailbox.js +43 -0
  41. package/dist/hooks/mailboxes/useWildduckCreateMailbox.js.map +1 -0
  42. package/dist/hooks/mailboxes/useWildduckDeleteMailbox.d.ts +13 -0
  43. package/dist/hooks/mailboxes/useWildduckDeleteMailbox.d.ts.map +1 -0
  44. package/dist/hooks/mailboxes/useWildduckDeleteMailbox.js +48 -0
  45. package/dist/hooks/mailboxes/useWildduckDeleteMailbox.js.map +1 -0
  46. package/dist/hooks/mailboxes/useWildduckGetMailbox.d.ts +173 -0
  47. package/dist/hooks/mailboxes/useWildduckGetMailbox.d.ts.map +1 -0
  48. package/dist/hooks/mailboxes/useWildduckGetMailbox.js +47 -0
  49. package/dist/hooks/mailboxes/useWildduckGetMailbox.js.map +1 -0
  50. package/dist/hooks/mailboxes/useWildduckGetMailboxes.d.ts +233 -0
  51. package/dist/hooks/mailboxes/useWildduckGetMailboxes.d.ts.map +1 -0
  52. package/dist/hooks/mailboxes/useWildduckGetMailboxes.js +34 -0
  53. package/dist/hooks/mailboxes/useWildduckGetMailboxes.js.map +1 -0
  54. package/dist/hooks/mailboxes/useWildduckUpdateMailbox.d.ts +13 -0
  55. package/dist/hooks/mailboxes/useWildduckUpdateMailbox.d.ts.map +1 -0
  56. package/dist/hooks/mailboxes/useWildduckUpdateMailbox.js +48 -0
  57. package/dist/hooks/mailboxes/useWildduckUpdateMailbox.js.map +1 -0
  58. package/dist/hooks/messages/index.d.ts +12 -0
  59. package/dist/hooks/messages/index.d.ts.map +1 -0
  60. package/dist/hooks/messages/index.js +12 -0
  61. package/dist/hooks/messages/index.js.map +1 -0
  62. package/dist/hooks/messages/useWildduckDeleteMessage.d.ts +13 -0
  63. package/dist/hooks/messages/useWildduckDeleteMessage.d.ts.map +1 -0
  64. package/dist/hooks/messages/useWildduckDeleteMessage.js +48 -0
  65. package/dist/hooks/messages/useWildduckDeleteMessage.js.map +1 -0
  66. package/dist/hooks/messages/useWildduckForwardMessage.d.ts +13 -0
  67. package/dist/hooks/messages/useWildduckForwardMessage.d.ts.map +1 -0
  68. package/dist/hooks/messages/useWildduckForwardMessage.js +51 -0
  69. package/dist/hooks/messages/useWildduckForwardMessage.js.map +1 -0
  70. package/dist/hooks/messages/useWildduckGetMessage.d.ts +653 -0
  71. package/dist/hooks/messages/useWildduckGetMessage.d.ts.map +1 -0
  72. package/dist/hooks/messages/useWildduckGetMessage.js +37 -0
  73. package/dist/hooks/messages/useWildduckGetMessage.js.map +1 -0
  74. package/dist/hooks/messages/useWildduckGetMessageAttachment.d.ts +13 -0
  75. package/dist/hooks/messages/useWildduckGetMessageAttachment.d.ts.map +1 -0
  76. package/dist/hooks/messages/useWildduckGetMessageAttachment.js +40 -0
  77. package/dist/hooks/messages/useWildduckGetMessageAttachment.js.map +1 -0
  78. package/dist/hooks/messages/useWildduckGetMessageSource.d.ts +12 -0
  79. package/dist/hooks/messages/useWildduckGetMessageSource.d.ts.map +1 -0
  80. package/dist/hooks/messages/useWildduckGetMessageSource.js +35 -0
  81. package/dist/hooks/messages/useWildduckGetMessageSource.js.map +1 -0
  82. package/dist/hooks/messages/useWildduckGetMessages.d.ts +11 -0
  83. package/dist/hooks/messages/useWildduckGetMessages.d.ts.map +1 -0
  84. package/dist/hooks/messages/useWildduckGetMessages.js +18 -0
  85. package/dist/hooks/messages/useWildduckGetMessages.js.map +1 -0
  86. package/dist/hooks/messages/useWildduckSearchMessages.d.ts +12 -0
  87. package/dist/hooks/messages/useWildduckSearchMessages.d.ts.map +1 -0
  88. package/dist/hooks/messages/useWildduckSearchMessages.js +46 -0
  89. package/dist/hooks/messages/useWildduckSearchMessages.js.map +1 -0
  90. package/dist/hooks/messages/useWildduckSendMessage.d.ts +13 -0
  91. package/dist/hooks/messages/useWildduckSendMessage.d.ts.map +1 -0
  92. package/dist/hooks/messages/useWildduckSendMessage.js +48 -0
  93. package/dist/hooks/messages/useWildduckSendMessage.js.map +1 -0
  94. package/dist/hooks/messages/useWildduckSubmitDraft.d.ts +13 -0
  95. package/dist/hooks/messages/useWildduckSubmitDraft.d.ts.map +1 -0
  96. package/dist/hooks/messages/useWildduckSubmitDraft.js +44 -0
  97. package/dist/hooks/messages/useWildduckSubmitDraft.js.map +1 -0
  98. package/dist/hooks/messages/useWildduckUpdateMessage.d.ts +13 -0
  99. package/dist/hooks/messages/useWildduckUpdateMessage.d.ts.map +1 -0
  100. package/dist/hooks/messages/useWildduckUpdateMessage.js +53 -0
  101. package/dist/hooks/messages/useWildduckUpdateMessage.js.map +1 -0
  102. package/dist/hooks/messages/useWildduckUploadMessage.d.ts +13 -0
  103. package/dist/hooks/messages/useWildduckUploadMessage.d.ts.map +1 -0
  104. package/dist/hooks/messages/useWildduckUploadMessage.js +51 -0
  105. package/dist/hooks/messages/useWildduckUploadMessage.js.map +1 -0
  106. package/dist/hooks/mocks.d.ts +354 -0
  107. package/dist/hooks/mocks.d.ts.map +1 -0
  108. package/dist/hooks/mocks.js +404 -0
  109. package/dist/hooks/mocks.js.map +1 -0
  110. package/dist/hooks/query-config.d.ts +9 -0
  111. package/dist/hooks/query-config.d.ts.map +1 -0
  112. package/dist/hooks/query-config.js +9 -0
  113. package/dist/hooks/query-config.js.map +1 -0
  114. package/dist/hooks/query-keys.d.ts +31 -0
  115. package/dist/hooks/query-keys.d.ts.map +1 -0
  116. package/dist/hooks/query-keys.js +40 -0
  117. package/dist/hooks/query-keys.js.map +1 -0
  118. package/dist/hooks/useServices.d.ts +14 -0
  119. package/dist/hooks/useServices.d.ts.map +1 -0
  120. package/dist/hooks/useServices.js +36 -0
  121. package/dist/hooks/useServices.js.map +1 -0
  122. package/dist/hooks/useWildduckAddresses.d.ts +67 -0
  123. package/dist/hooks/useWildduckAddresses.d.ts.map +1 -0
  124. package/dist/hooks/useWildduckAddresses.js +313 -0
  125. package/dist/hooks/useWildduckAddresses.js.map +1 -0
  126. package/dist/hooks/useWildduckAuth.d.ts +28 -0
  127. package/dist/hooks/useWildduckAuth.d.ts.map +1 -0
  128. package/dist/hooks/useWildduckAuth.js +249 -0
  129. package/dist/hooks/useWildduckAuth.js.map +1 -0
  130. package/dist/hooks/useWildduckFilters.d.ts +89 -0
  131. package/dist/hooks/useWildduckFilters.d.ts.map +1 -0
  132. package/dist/hooks/useWildduckFilters.js +209 -0
  133. package/dist/hooks/useWildduckFilters.js.map +1 -0
  134. package/dist/hooks/useWildduckHealth.d.ts +45 -0
  135. package/dist/hooks/useWildduckHealth.d.ts.map +1 -0
  136. package/dist/hooks/useWildduckHealth.js +110 -0
  137. package/dist/hooks/useWildduckHealth.js.map +1 -0
  138. package/dist/hooks/useWildduckMailboxes.d.ts +29 -0
  139. package/dist/hooks/useWildduckMailboxes.d.ts.map +1 -0
  140. package/dist/hooks/useWildduckMailboxes.js +195 -0
  141. package/dist/hooks/useWildduckMailboxes.js.map +1 -0
  142. package/dist/hooks/useWildduckMessages.d.ts +76 -0
  143. package/dist/hooks/useWildduckMessages.d.ts.map +1 -0
  144. package/dist/hooks/useWildduckMessages.js +264 -0
  145. package/dist/hooks/useWildduckMessages.js.map +1 -0
  146. package/dist/hooks/useWildduckQueries.d.ts +50 -0
  147. package/dist/hooks/useWildduckQueries.d.ts.map +1 -0
  148. package/dist/hooks/useWildduckQueries.js +640 -0
  149. package/dist/hooks/useWildduckQueries.js.map +1 -0
  150. package/dist/hooks/useWildduckSettings.d.ts +22 -0
  151. package/dist/hooks/useWildduckSettings.d.ts.map +1 -0
  152. package/dist/hooks/useWildduckSettings.js +153 -0
  153. package/dist/hooks/useWildduckSettings.js.map +1 -0
  154. package/dist/hooks/useWildduckUsers.d.ts +31 -0
  155. package/dist/hooks/useWildduckUsers.d.ts.map +1 -0
  156. package/dist/hooks/useWildduckUsers.js +114 -0
  157. package/dist/hooks/useWildduckUsers.js.map +1 -0
  158. package/dist/hooks/users/index.d.ts +12 -0
  159. package/dist/hooks/users/index.d.ts.map +1 -0
  160. package/dist/hooks/users/index.js +12 -0
  161. package/dist/hooks/users/index.js.map +1 -0
  162. package/dist/hooks/users/useWildduckCreateUser.d.ts +13 -0
  163. package/dist/hooks/users/useWildduckCreateUser.d.ts.map +1 -0
  164. package/dist/hooks/users/useWildduckCreateUser.js +44 -0
  165. package/dist/hooks/users/useWildduckCreateUser.js.map +1 -0
  166. package/dist/hooks/users/useWildduckDeleteUser.d.ts +13 -0
  167. package/dist/hooks/users/useWildduckDeleteUser.d.ts.map +1 -0
  168. package/dist/hooks/users/useWildduckDeleteUser.js +44 -0
  169. package/dist/hooks/users/useWildduckDeleteUser.js.map +1 -0
  170. package/dist/hooks/users/useWildduckGetUser.d.ts +397 -0
  171. package/dist/hooks/users/useWildduckGetUser.d.ts.map +1 -0
  172. package/dist/hooks/users/useWildduckGetUser.js +45 -0
  173. package/dist/hooks/users/useWildduckGetUser.js.map +1 -0
  174. package/dist/hooks/users/useWildduckUpdateUser.d.ts +13 -0
  175. package/dist/hooks/users/useWildduckUpdateUser.d.ts.map +1 -0
  176. package/dist/hooks/users/useWildduckUpdateUser.js +44 -0
  177. package/dist/hooks/users/useWildduckUpdateUser.js.map +1 -0
  178. package/dist/hooks/users/useWildduckUser2FA.d.ts +25 -0
  179. package/dist/hooks/users/useWildduckUser2FA.d.ts.map +1 -0
  180. package/dist/hooks/users/useWildduckUser2FA.js +70 -0
  181. package/dist/hooks/users/useWildduckUser2FA.js.map +1 -0
  182. package/dist/hooks/users/useWildduckUserEncryption.d.ts +40 -0
  183. package/dist/hooks/users/useWildduckUserEncryption.d.ts.map +1 -0
  184. package/dist/hooks/users/useWildduckUserEncryption.js +94 -0
  185. package/dist/hooks/users/useWildduckUserEncryption.js.map +1 -0
  186. package/dist/hooks/users/useWildduckUserForwarding.d.ts +44 -0
  187. package/dist/hooks/users/useWildduckUserForwarding.d.ts.map +1 -0
  188. package/dist/hooks/users/useWildduckUserForwarding.js +122 -0
  189. package/dist/hooks/users/useWildduckUserForwarding.js.map +1 -0
  190. package/dist/hooks/users/useWildduckUserLimits.d.ts +63 -0
  191. package/dist/hooks/users/useWildduckUserLimits.d.ts.map +1 -0
  192. package/dist/hooks/users/useWildduckUserLimits.js +60 -0
  193. package/dist/hooks/users/useWildduckUserLimits.js.map +1 -0
  194. package/dist/hooks/users/useWildduckUserProfile.d.ts +78 -0
  195. package/dist/hooks/users/useWildduckUserProfile.d.ts.map +1 -0
  196. package/dist/hooks/users/useWildduckUserProfile.js +139 -0
  197. package/dist/hooks/users/useWildduckUserProfile.js.map +1 -0
  198. package/dist/hooks/users/useWildduckUserQuota.d.ts +31 -0
  199. package/dist/hooks/users/useWildduckUserQuota.d.ts.map +1 -0
  200. package/dist/hooks/users/useWildduckUserQuota.js +66 -0
  201. package/dist/hooks/users/useWildduckUserQuota.js.map +1 -0
  202. package/dist/hooks/users/useWildduckUserSpam.d.ts +54 -0
  203. package/dist/hooks/users/useWildduckUserSpam.d.ts.map +1 -0
  204. package/dist/hooks/users/useWildduckUserSpam.js +137 -0
  205. package/dist/hooks/users/useWildduckUserSpam.js.map +1 -0
  206. package/dist/index.d.ts +7 -0
  207. package/dist/index.d.ts.map +1 -0
  208. package/dist/index.js +7 -0
  209. package/dist/index.js.map +1 -0
  210. package/dist/network/index.d.ts +2 -0
  211. package/dist/network/index.d.ts.map +1 -0
  212. package/dist/network/index.js +2 -0
  213. package/dist/network/index.js.map +1 -0
  214. package/dist/network/wildduck-client.d.ts +54 -0
  215. package/dist/network/wildduck-client.d.ts.map +1 -0
  216. package/dist/network/wildduck-client.js +572 -0
  217. package/dist/network/wildduck-client.js.map +1 -0
  218. package/dist/types/index.d.ts +2 -0
  219. package/dist/types/index.d.ts.map +1 -0
  220. package/dist/types/index.js +2 -0
  221. package/dist/types/index.js.map +1 -0
  222. package/dist/utils/advanced-settings.d.ts +36 -0
  223. package/dist/utils/advanced-settings.d.ts.map +1 -0
  224. package/dist/utils/advanced-settings.js +99 -0
  225. package/dist/utils/advanced-settings.js.map +1 -0
  226. package/dist/utils/autoreply.d.ts +34 -0
  227. package/dist/utils/autoreply.d.ts.map +1 -0
  228. package/dist/utils/autoreply.js +39 -0
  229. package/dist/utils/autoreply.js.map +1 -0
  230. package/dist/utils/client.d.ts +4 -0
  231. package/dist/utils/client.d.ts.map +1 -0
  232. package/dist/utils/client.js +11 -0
  233. package/dist/utils/client.js.map +1 -0
  234. package/dist/utils/filters.d.ts +26 -0
  235. package/dist/utils/filters.d.ts.map +1 -0
  236. package/dist/utils/filters.js +50 -0
  237. package/dist/utils/filters.js.map +1 -0
  238. package/dist/utils/forwarding.d.ts +12 -0
  239. package/dist/utils/forwarding.d.ts.map +1 -0
  240. package/dist/utils/forwarding.js +29 -0
  241. package/dist/utils/forwarding.js.map +1 -0
  242. package/dist/utils/index.d.ts +7 -0
  243. package/dist/utils/index.d.ts.map +1 -0
  244. package/dist/utils/index.js +7 -0
  245. package/dist/utils/index.js.map +1 -0
  246. package/dist/utils/spam-settings.d.ts +21 -0
  247. package/dist/utils/spam-settings.d.ts.map +1 -0
  248. package/dist/utils/spam-settings.js +53 -0
  249. package/dist/utils/spam-settings.js.map +1 -0
  250. package/dist/utils/user-settings.d.ts +30 -0
  251. package/dist/utils/user-settings.d.ts.map +1 -0
  252. package/dist/utils/user-settings.js +21 -0
  253. package/dist/utils/user-settings.js.map +1 -0
  254. package/package.json +82 -0
@@ -0,0 +1,94 @@
1
+ import { useCallback, useMemo } from "react";
2
+ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
3
+ export const useWildduckUserEncryption = (api, userAuth) => {
4
+ const queryClient = useQueryClient();
5
+ const userId = userAuth?.userId;
6
+ const encryptionQueryFn = useCallback(async () => {
7
+ if (!userAuth)
8
+ throw new Error("User auth is required");
9
+ const user = (await api.getUser(userAuth));
10
+ return {
11
+ encryptMessages: user.encryptMessages,
12
+ encryptForwarded: user.encryptForwarded,
13
+ pubKey: user.pubKey,
14
+ keyInfo: user.keyInfo,
15
+ };
16
+ }, [userAuth, api]);
17
+ const encryptionQuery = useQuery({
18
+ queryKey: ["user", userId, "encryption"],
19
+ queryFn: encryptionQueryFn,
20
+ enabled: !!userAuth,
21
+ });
22
+ const updateEncryption = useMutation({
23
+ mutationFn: async (params) => {
24
+ const { userAuth, ...settings } = params;
25
+ return await api.updateUser(userAuth, settings);
26
+ },
27
+ onSuccess: (_, variables) => {
28
+ queryClient.invalidateQueries({
29
+ queryKey: ["user", variables.userAuth.userId],
30
+ });
31
+ queryClient.invalidateQueries({
32
+ queryKey: ["user", variables.userAuth.userId, "encryption"],
33
+ });
34
+ },
35
+ });
36
+ const updatePubKey = useMutation({
37
+ mutationFn: async ({ userAuth, pubKey, }) => {
38
+ return await api.updateUser(userAuth, { pubKey });
39
+ },
40
+ onSuccess: (_, variables) => {
41
+ queryClient.invalidateQueries({
42
+ queryKey: ["user", variables.userAuth.userId],
43
+ });
44
+ queryClient.invalidateQueries({
45
+ queryKey: ["user", variables.userAuth.userId, "encryption"],
46
+ });
47
+ },
48
+ });
49
+ const removePubKey = useMutation({
50
+ mutationFn: async (userAuth) => {
51
+ return await api.updateUser(userAuth, { pubKey: "" });
52
+ },
53
+ onSuccess: (_, userAuth) => {
54
+ queryClient.invalidateQueries({ queryKey: ["user", userAuth.userId] });
55
+ queryClient.invalidateQueries({
56
+ queryKey: ["user", userId, "encryption"],
57
+ });
58
+ },
59
+ });
60
+ return useMemo(() => ({
61
+ encryption: encryptionQuery.data,
62
+ isLoading: encryptionQuery.isLoading,
63
+ isError: encryptionQuery.isError,
64
+ error: encryptionQuery.error,
65
+ encryptMessages: encryptionQuery.data?.encryptMessages,
66
+ encryptForwarded: encryptionQuery.data?.encryptForwarded,
67
+ pubKey: encryptionQuery.data?.pubKey,
68
+ keyInfo: encryptionQuery.data?.keyInfo,
69
+ updateEncryption: updateEncryption.mutate,
70
+ updateEncryptionAsync: updateEncryption.mutateAsync,
71
+ isUpdating: updateEncryption.isPending,
72
+ updatePubKey: updatePubKey.mutate,
73
+ updatePubKeyAsync: updatePubKey.mutateAsync,
74
+ isUpdatingKey: updatePubKey.isPending,
75
+ removePubKey: removePubKey.mutate,
76
+ removePubKeyAsync: removePubKey.mutateAsync,
77
+ isRemovingKey: removePubKey.isPending,
78
+ }), [
79
+ encryptionQuery.data,
80
+ encryptionQuery.isLoading,
81
+ encryptionQuery.isError,
82
+ encryptionQuery.error,
83
+ updateEncryption.mutate,
84
+ updateEncryption.mutateAsync,
85
+ updateEncryption.isPending,
86
+ updatePubKey.mutate,
87
+ updatePubKey.mutateAsync,
88
+ updatePubKey.isPending,
89
+ removePubKey.mutate,
90
+ removePubKey.mutateAsync,
91
+ removePubKey.isPending,
92
+ ]);
93
+ };
94
+ //# sourceMappingURL=useWildduckUserEncryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWildduckUserEncryption.js","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserEncryption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { WildduckAPI } from "../../network/wildduck-client";
2
+ import type { WildduckUserAuth } from "@sudobility/types";
3
+ export interface ForwardingSettings {
4
+ targets: string[];
5
+ mtaRelay?: string | undefined;
6
+ }
7
+ export interface UpdateForwardingParams {
8
+ userAuth: WildduckUserAuth;
9
+ targets?: string[];
10
+ mtaRelay?: string;
11
+ }
12
+ export declare const useWildduckUserForwarding: (api: WildduckAPI, userAuth?: WildduckUserAuth) => {
13
+ forwarding: ForwardingSettings | undefined;
14
+ targets: string[];
15
+ mtaRelay: string | undefined;
16
+ isLoading: boolean;
17
+ isError: boolean;
18
+ error: Error | null;
19
+ updateForwarding: (params: UpdateForwardingParams) => void;
20
+ updateForwardingAsync: (params: UpdateForwardingParams) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
21
+ isUpdating: boolean;
22
+ addTarget: (params: {
23
+ userAuth: WildduckUserAuth;
24
+ target: string;
25
+ }) => void;
26
+ addTargetAsync: (params: {
27
+ userAuth: WildduckUserAuth;
28
+ target: string;
29
+ }) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
30
+ isAddingTarget: boolean;
31
+ removeTarget: (params: {
32
+ userAuth: WildduckUserAuth;
33
+ target: string;
34
+ }) => void;
35
+ removeTargetAsync: (params: {
36
+ userAuth: WildduckUserAuth;
37
+ target: string;
38
+ }) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
39
+ isRemovingTarget: boolean;
40
+ clearTargets: (userAuth: WildduckUserAuth) => void;
41
+ clearTargetsAsync: (userAuth: WildduckUserAuth) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
42
+ isClearingTargets: boolean;
43
+ };
44
+ //# sourceMappingURL=useWildduckUserForwarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWildduckUserForwarding.d.ts","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserForwarding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,eAAO,MAAM,yBAAyB,GACpC,KAAK,WAAW,EAChB,WAAW,gBAAgB;;;;;;;+BAyGhB,sBAAsB;oCAKhB,sBAAsB;;wBAM5B;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;6BAMxC;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;;2BAMpD;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;gCAMxC;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;;6BAMlD,gBAAgB;kCAKV,gBAAgB;;CAkDpC,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
2
+ import { useCallback, useMemo } from "react";
3
+ export const useWildduckUserForwarding = (api, userAuth) => {
4
+ const queryClient = useQueryClient();
5
+ const userId = userAuth?.userId;
6
+ const forwardingQuery = useQuery({
7
+ queryKey: ["user", userId, "forwarding"],
8
+ queryFn: async () => {
9
+ if (!userAuth)
10
+ throw new Error("User auth is required");
11
+ const user = (await api.getUser(userAuth));
12
+ return {
13
+ targets: user.targets || [],
14
+ mtaRelay: user.mtaRelay,
15
+ };
16
+ },
17
+ enabled: !!userAuth,
18
+ });
19
+ const updateForwarding = useMutation({
20
+ mutationFn: async (params) => {
21
+ const { userAuth, ...settings } = params;
22
+ return await api.updateUser(userAuth, settings);
23
+ },
24
+ onSuccess: (_, variables) => {
25
+ queryClient.invalidateQueries({
26
+ queryKey: ["user", variables.userAuth.userId],
27
+ });
28
+ queryClient.invalidateQueries({
29
+ queryKey: ["user", variables.userAuth.userId, "forwarding"],
30
+ });
31
+ },
32
+ });
33
+ const addTarget = useMutation({
34
+ mutationFn: async ({ userAuth, target, }) => {
35
+ const user = (await api.getUser(userAuth));
36
+ const currentTargets = user.targets || [];
37
+ const newTargets = [...currentTargets, target];
38
+ return await api.updateUser(userAuth, { targets: newTargets });
39
+ },
40
+ onSuccess: (_, variables) => {
41
+ queryClient.invalidateQueries({
42
+ queryKey: ["user", variables.userAuth.userId],
43
+ });
44
+ queryClient.invalidateQueries({
45
+ queryKey: ["user", variables.userAuth.userId, "forwarding"],
46
+ });
47
+ },
48
+ });
49
+ const removeTarget = useMutation({
50
+ mutationFn: async ({ userAuth, target, }) => {
51
+ const user = (await api.getUser(userAuth));
52
+ const currentTargets = user.targets || [];
53
+ const newTargets = currentTargets.filter((t) => t !== target);
54
+ return await api.updateUser(userAuth, { targets: newTargets });
55
+ },
56
+ onSuccess: (_, variables) => {
57
+ queryClient.invalidateQueries({
58
+ queryKey: ["user", variables.userAuth.userId],
59
+ });
60
+ queryClient.invalidateQueries({
61
+ queryKey: ["user", variables.userAuth.userId, "forwarding"],
62
+ });
63
+ },
64
+ });
65
+ const clearTargets = useMutation({
66
+ mutationFn: async (userAuth) => {
67
+ return await api.updateUser(userAuth, { targets: [] });
68
+ },
69
+ onSuccess: (_, userAuth) => {
70
+ queryClient.invalidateQueries({ queryKey: ["user", userAuth.userId] });
71
+ queryClient.invalidateQueries({
72
+ queryKey: ["user", userAuth.userId, "forwarding"],
73
+ });
74
+ },
75
+ });
76
+ const handleUpdateForwarding = useCallback((params) => updateForwarding.mutate(params), [updateForwarding]);
77
+ const handleUpdateForwardingAsync = useCallback(async (params) => updateForwarding.mutateAsync(params), [updateForwarding]);
78
+ const handleAddTarget = useCallback((params) => addTarget.mutate(params), [addTarget]);
79
+ const handleAddTargetAsync = useCallback(async (params) => addTarget.mutateAsync(params), [addTarget]);
80
+ const handleRemoveTarget = useCallback((params) => removeTarget.mutate(params), [removeTarget]);
81
+ const handleRemoveTargetAsync = useCallback(async (params) => removeTarget.mutateAsync(params), [removeTarget]);
82
+ const handleClearTargets = useCallback((userAuth) => clearTargets.mutate(userAuth), [clearTargets]);
83
+ const handleClearTargetsAsync = useCallback(async (userAuth) => clearTargets.mutateAsync(userAuth), [clearTargets]);
84
+ return useMemo(() => ({
85
+ forwarding: forwardingQuery.data,
86
+ targets: forwardingQuery.data?.targets || [],
87
+ mtaRelay: forwardingQuery.data?.mtaRelay,
88
+ isLoading: forwardingQuery.isLoading,
89
+ isError: forwardingQuery.isError,
90
+ error: forwardingQuery.error,
91
+ updateForwarding: handleUpdateForwarding,
92
+ updateForwardingAsync: handleUpdateForwardingAsync,
93
+ isUpdating: updateForwarding.isPending,
94
+ addTarget: handleAddTarget,
95
+ addTargetAsync: handleAddTargetAsync,
96
+ isAddingTarget: addTarget.isPending,
97
+ removeTarget: handleRemoveTarget,
98
+ removeTargetAsync: handleRemoveTargetAsync,
99
+ isRemovingTarget: removeTarget.isPending,
100
+ clearTargets: handleClearTargets,
101
+ clearTargetsAsync: handleClearTargetsAsync,
102
+ isClearingTargets: clearTargets.isPending,
103
+ }), [
104
+ forwardingQuery.data,
105
+ forwardingQuery.isLoading,
106
+ forwardingQuery.isError,
107
+ forwardingQuery.error,
108
+ handleUpdateForwarding,
109
+ handleUpdateForwardingAsync,
110
+ updateForwarding.isPending,
111
+ handleAddTarget,
112
+ handleAddTargetAsync,
113
+ addTarget.isPending,
114
+ handleRemoveTarget,
115
+ handleRemoveTargetAsync,
116
+ removeTarget.isPending,
117
+ handleClearTargets,
118
+ handleClearTargetsAsync,
119
+ clearTargets.isPending,
120
+ ]);
121
+ };
122
+ //# sourceMappingURL=useWildduckUserForwarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWildduckUserForwarding.js","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserForwarding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { WildduckAPI } from "../../network/wildduck-client";
2
+ import type { WildduckLimits, WildduckUserAuth } from "@sudobility/types";
3
+ export interface UpdateWildduckLimitsParams {
4
+ userAuth: WildduckUserAuth;
5
+ recipients?: number;
6
+ forwards?: number;
7
+ filters?: number;
8
+ imapMaxUpload?: number;
9
+ imapMaxDownload?: number;
10
+ pop3MaxDownload?: number;
11
+ pop3MaxMessages?: number;
12
+ imapMaxConnections?: number;
13
+ receivedMax?: number;
14
+ }
15
+ export declare const useWildduckUserLimits: (api: WildduckAPI, userAuth?: WildduckUserAuth) => {
16
+ limits: WildduckLimits | undefined;
17
+ isLoading: boolean;
18
+ isError: boolean;
19
+ error: Error | null;
20
+ quota: {
21
+ allowed: number;
22
+ used: number;
23
+ } | undefined;
24
+ recipients: {
25
+ allowed: number;
26
+ used: number;
27
+ ttl: number;
28
+ } | undefined;
29
+ forwards: {
30
+ allowed: number;
31
+ used: number;
32
+ ttl: number;
33
+ } | undefined;
34
+ received: {
35
+ allowed: number;
36
+ used: number;
37
+ ttl: number;
38
+ } | undefined;
39
+ imapUpload: {
40
+ allowed: number;
41
+ used: number;
42
+ ttl: number;
43
+ } | undefined;
44
+ imapDownload: {
45
+ allowed: number;
46
+ used: number;
47
+ ttl: number;
48
+ } | undefined;
49
+ pop3Download: {
50
+ allowed: number;
51
+ used: number;
52
+ ttl: number;
53
+ } | undefined;
54
+ imapMaxConnections: {
55
+ allowed: number;
56
+ used: number;
57
+ } | undefined;
58
+ updateLimits: (params: UpdateWildduckLimitsParams) => void;
59
+ updateLimitsAsync: (params: UpdateWildduckLimitsParams) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
60
+ isUpdating: boolean;
61
+ updateError: Error | null;
62
+ };
63
+ //# sourceMappingURL=useWildduckUserLimits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWildduckUserLimits.d.ts","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserLimits.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAEjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,eAAO,MAAM,qBAAqB,GAChC,KAAK,WAAW,EAChB,WAAW,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmChB,0BAA0B;gCAKpB,0BAA0B;;;CAwC5C,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
2
+ import { useCallback, useMemo } from "react";
3
+ export const useWildduckUserLimits = (api, userAuth) => {
4
+ const queryClient = useQueryClient();
5
+ const userId = userAuth?.userId;
6
+ const limitsQuery = useQuery({
7
+ queryKey: ["user", userId, "limits"],
8
+ queryFn: async () => {
9
+ if (!userAuth)
10
+ throw new Error("User auth is required");
11
+ const user = (await api.getUser(userAuth));
12
+ return user.limits;
13
+ },
14
+ enabled: !!userAuth,
15
+ });
16
+ const updateLimits = useMutation({
17
+ mutationFn: async (params) => {
18
+ const { userAuth, ...limits } = params;
19
+ return await api.updateUser(userAuth, limits);
20
+ },
21
+ onSuccess: (_, variables) => {
22
+ queryClient.invalidateQueries({
23
+ queryKey: ["user", variables.userAuth.userId],
24
+ });
25
+ queryClient.invalidateQueries({
26
+ queryKey: ["user", variables.userAuth.userId, "limits"],
27
+ });
28
+ },
29
+ });
30
+ const handleUpdateLimits = useCallback((params) => updateLimits.mutate(params), [updateLimits]);
31
+ const handleUpdateLimitsAsync = useCallback(async (params) => updateLimits.mutateAsync(params), [updateLimits]);
32
+ return useMemo(() => ({
33
+ limits: limitsQuery.data,
34
+ isLoading: limitsQuery.isLoading,
35
+ isError: limitsQuery.isError,
36
+ error: limitsQuery.error,
37
+ quota: limitsQuery.data?.quota,
38
+ recipients: limitsQuery.data?.recipients,
39
+ forwards: limitsQuery.data?.forwards,
40
+ received: limitsQuery.data?.received,
41
+ imapUpload: limitsQuery.data?.imapUpload,
42
+ imapDownload: limitsQuery.data?.imapDownload,
43
+ pop3Download: limitsQuery.data?.pop3Download,
44
+ imapMaxConnections: limitsQuery.data?.imapMaxConnections,
45
+ updateLimits: handleUpdateLimits,
46
+ updateLimitsAsync: handleUpdateLimitsAsync,
47
+ isUpdating: updateLimits.isPending,
48
+ updateError: updateLimits.error,
49
+ }), [
50
+ limitsQuery.data,
51
+ limitsQuery.isLoading,
52
+ limitsQuery.isError,
53
+ limitsQuery.error,
54
+ handleUpdateLimits,
55
+ handleUpdateLimitsAsync,
56
+ updateLimits.isPending,
57
+ updateLimits.error,
58
+ ]);
59
+ };
60
+ //# sourceMappingURL=useWildduckUserLimits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWildduckUserLimits.js","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserLimits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import type { WildduckAPI } from "../../network/wildduck-client";
2
+ import type { WildduckUserAuth } from "@sudobility/types";
3
+ export interface UserProfile {
4
+ username: string;
5
+ name: string;
6
+ address: string;
7
+ language?: string | undefined;
8
+ retention?: number | undefined;
9
+ uploadSentMessages?: boolean | undefined;
10
+ tags: string[];
11
+ metaData?: Record<string, unknown> | undefined;
12
+ disabled: boolean;
13
+ suspended: boolean;
14
+ activated: boolean;
15
+ hasPasswordSet: boolean;
16
+ disabledScopes: string[];
17
+ }
18
+ export interface UpdateProfileParams {
19
+ userAuth: WildduckUserAuth;
20
+ name?: string;
21
+ language?: string;
22
+ retention?: number;
23
+ uploadSentMessages?: boolean;
24
+ tags?: string[];
25
+ metaData?: Record<string, unknown> | string;
26
+ disabled?: boolean;
27
+ suspended?: boolean;
28
+ disabledScopes?: string[];
29
+ }
30
+ export interface UpdatePasswordParams {
31
+ userAuth: WildduckUserAuth;
32
+ existingPassword?: string;
33
+ password: string;
34
+ hashedPassword?: boolean;
35
+ allowUnsafe?: boolean;
36
+ }
37
+ export declare const useWildduckUserProfile: (api: WildduckAPI, userAuth?: WildduckUserAuth) => {
38
+ profile: UserProfile | undefined;
39
+ isLoading: boolean;
40
+ isError: boolean;
41
+ error: Error | null;
42
+ username: string | undefined;
43
+ name: string | undefined;
44
+ address: string | undefined;
45
+ language: string | undefined;
46
+ tags: string[];
47
+ disabled: boolean | undefined;
48
+ suspended: boolean | undefined;
49
+ activated: boolean | undefined;
50
+ hasPasswordSet: boolean | undefined;
51
+ updateProfile: (params: UpdateProfileParams) => void;
52
+ updateProfileAsync: (params: UpdateProfileParams) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
53
+ isUpdatingProfile: boolean;
54
+ updatePassword: (params: UpdatePasswordParams) => void;
55
+ updatePasswordAsync: (params: UpdatePasswordParams) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
56
+ isUpdatingPassword: boolean;
57
+ updateTags: (params: {
58
+ userAuth: WildduckUserAuth;
59
+ tags: string[];
60
+ }) => void;
61
+ updateTagsAsync: (params: {
62
+ userAuth: WildduckUserAuth;
63
+ tags: string[];
64
+ }) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
65
+ isUpdatingTags: boolean;
66
+ setAccountStatus: (params: {
67
+ userAuth: WildduckUserAuth;
68
+ disabled?: boolean;
69
+ suspended?: boolean;
70
+ }) => void;
71
+ setAccountStatusAsync: (params: {
72
+ userAuth: WildduckUserAuth;
73
+ disabled?: boolean;
74
+ suspended?: boolean;
75
+ }) => Promise<import("@sudobility/types").WildduckSuccessResponse>;
76
+ isUpdatingStatus: boolean;
77
+ };
78
+ //# sourceMappingURL=useWildduckUserProfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWildduckUserProfile.d.ts","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserProfile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,sBAAsB,GACjC,KAAK,WAAW,EAChB,WAAW,gBAAgB;;;;;;;;;;;;;;4BA6GhB,mBAAmB;iCAKb,mBAAmB;;6BAKzB,oBAAoB;kCAKd,oBAAoB;;yBAK1B;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;8BAMxC;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;;+BAMpD;QACP,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;oCAKc;QACb,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;;CA2DJ,CAAC"}
@@ -0,0 +1,139 @@
1
+ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
2
+ import { useCallback, useMemo } from "react";
3
+ export const useWildduckUserProfile = (api, userAuth) => {
4
+ const queryClient = useQueryClient();
5
+ const userId = userAuth?.userId;
6
+ const profileQuery = useQuery({
7
+ queryKey: ["user", userId, "profile"],
8
+ queryFn: async () => {
9
+ if (!userAuth)
10
+ throw new Error("User auth is required");
11
+ const user = (await api.getUser(userAuth));
12
+ return {
13
+ username: user.username,
14
+ name: user.name,
15
+ address: user.address,
16
+ language: user.language,
17
+ retention: user.retention,
18
+ uploadSentMessages: user.uploadSentMessages,
19
+ tags: user.tags || [],
20
+ metaData: user.metaData,
21
+ disabled: user.disabled,
22
+ suspended: user.suspended,
23
+ activated: user.activated,
24
+ hasPasswordSet: user.hasPasswordSet,
25
+ disabledScopes: user.disabledScopes || [],
26
+ };
27
+ },
28
+ enabled: !!userAuth,
29
+ });
30
+ const updateProfile = useMutation({
31
+ mutationFn: async (params) => {
32
+ const { userAuth, ...updates } = params;
33
+ return await api.updateUser(userAuth, updates);
34
+ },
35
+ onSuccess: (_, variables) => {
36
+ queryClient.invalidateQueries({
37
+ queryKey: ["user", variables.userAuth.userId],
38
+ });
39
+ queryClient.invalidateQueries({
40
+ queryKey: ["user", variables.userAuth.userId, "profile"],
41
+ });
42
+ },
43
+ });
44
+ const updatePassword = useMutation({
45
+ mutationFn: async (params) => {
46
+ const { userAuth, ...passwordData } = params;
47
+ return await api.updateUser(userAuth, passwordData);
48
+ },
49
+ onSuccess: (_, variables) => {
50
+ queryClient.invalidateQueries({
51
+ queryKey: ["user", variables.userAuth.userId],
52
+ });
53
+ },
54
+ });
55
+ const updateTags = useMutation({
56
+ mutationFn: async ({ userAuth, tags, }) => {
57
+ return await api.updateUser(userAuth, { tags });
58
+ },
59
+ onSuccess: (_, variables) => {
60
+ queryClient.invalidateQueries({
61
+ queryKey: ["user", variables.userAuth.userId],
62
+ });
63
+ queryClient.invalidateQueries({
64
+ queryKey: ["user", variables.userAuth.userId, "profile"],
65
+ });
66
+ },
67
+ });
68
+ const setAccountStatus = useMutation({
69
+ mutationFn: async ({ userAuth, disabled, suspended, }) => {
70
+ const updates = {};
71
+ if (disabled !== undefined)
72
+ updates.disabled = disabled;
73
+ if (suspended !== undefined)
74
+ updates.suspended = suspended;
75
+ return await api.updateUser(userAuth, updates);
76
+ },
77
+ onSuccess: (_, variables) => {
78
+ queryClient.invalidateQueries({
79
+ queryKey: ["user", variables.userAuth.userId],
80
+ });
81
+ queryClient.invalidateQueries({
82
+ queryKey: ["user", variables.userAuth.userId, "profile"],
83
+ });
84
+ },
85
+ });
86
+ const handleUpdateProfile = useCallback((params) => updateProfile.mutate(params), [updateProfile]);
87
+ const handleUpdateProfileAsync = useCallback(async (params) => updateProfile.mutateAsync(params), [updateProfile]);
88
+ const handleUpdatePassword = useCallback((params) => updatePassword.mutate(params), [updatePassword]);
89
+ const handleUpdatePasswordAsync = useCallback(async (params) => updatePassword.mutateAsync(params), [updatePassword]);
90
+ const handleUpdateTags = useCallback((params) => updateTags.mutate(params), [updateTags]);
91
+ const handleUpdateTagsAsync = useCallback(async (params) => updateTags.mutateAsync(params), [updateTags]);
92
+ const handleSetAccountStatus = useCallback((params) => setAccountStatus.mutate(params), [setAccountStatus]);
93
+ const handleSetAccountStatusAsync = useCallback(async (params) => setAccountStatus.mutateAsync(params), [setAccountStatus]);
94
+ return useMemo(() => ({
95
+ profile: profileQuery.data,
96
+ isLoading: profileQuery.isLoading,
97
+ isError: profileQuery.isError,
98
+ error: profileQuery.error,
99
+ username: profileQuery.data?.username,
100
+ name: profileQuery.data?.name,
101
+ address: profileQuery.data?.address,
102
+ language: profileQuery.data?.language,
103
+ tags: profileQuery.data?.tags || [],
104
+ disabled: profileQuery.data?.disabled,
105
+ suspended: profileQuery.data?.suspended,
106
+ activated: profileQuery.data?.activated,
107
+ hasPasswordSet: profileQuery.data?.hasPasswordSet,
108
+ updateProfile: handleUpdateProfile,
109
+ updateProfileAsync: handleUpdateProfileAsync,
110
+ isUpdatingProfile: updateProfile.isPending,
111
+ updatePassword: handleUpdatePassword,
112
+ updatePasswordAsync: handleUpdatePasswordAsync,
113
+ isUpdatingPassword: updatePassword.isPending,
114
+ updateTags: handleUpdateTags,
115
+ updateTagsAsync: handleUpdateTagsAsync,
116
+ isUpdatingTags: updateTags.isPending,
117
+ setAccountStatus: handleSetAccountStatus,
118
+ setAccountStatusAsync: handleSetAccountStatusAsync,
119
+ isUpdatingStatus: setAccountStatus.isPending,
120
+ }), [
121
+ profileQuery.data,
122
+ profileQuery.isLoading,
123
+ profileQuery.isError,
124
+ profileQuery.error,
125
+ handleUpdateProfile,
126
+ handleUpdateProfileAsync,
127
+ updateProfile.isPending,
128
+ handleUpdatePassword,
129
+ handleUpdatePasswordAsync,
130
+ updatePassword.isPending,
131
+ handleUpdateTags,
132
+ handleUpdateTagsAsync,
133
+ updateTags.isPending,
134
+ handleSetAccountStatus,
135
+ handleSetAccountStatusAsync,
136
+ setAccountStatus.isPending,
137
+ ]);
138
+ };
139
+ //# sourceMappingURL=useWildduckUserProfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWildduckUserProfile.js","sourceRoot":"","sources":["../../../src/hooks/users/useWildduckUserProfile.ts"],"names":[],"mappings":"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"}