@greatapps/common 1.1.257 → 1.1.259

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 (301) hide show
  1. package/dist/components/account/AccountModals.mjs.map +1 -1
  2. package/dist/components/account/ConfigurationsMyAccountModal.mjs +2 -2
  3. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -1
  4. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -1
  5. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -1
  6. package/dist/components/account/DeleteAccountModal.mjs.map +1 -1
  7. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -1
  8. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -1
  9. package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -1
  10. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +1 -1
  11. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +1 -1
  12. package/dist/components/account/sections/ChangeEmailModal.mjs.map +1 -1
  13. package/dist/components/account/sections/ChangePasswordSection.mjs.map +1 -1
  14. package/dist/components/account/sections/ChangePhoneModal.mjs.map +1 -1
  15. package/dist/components/account/sections/MyProfileSection.mjs.map +1 -1
  16. package/dist/components/account/sections/PreferencesSection.mjs.map +1 -1
  17. package/dist/components/account/sections/SecuritySection.mjs.map +1 -1
  18. package/dist/components/embeds/CrispEmbed.mjs.map +1 -1
  19. package/dist/components/embeds/FrillEmbed.mjs.map +1 -1
  20. package/dist/components/handlers/SearchParamsHandler.mjs.map +1 -1
  21. package/dist/components/layouts/AppMobileNavBar.mjs +1 -1
  22. package/dist/components/layouts/AppMobileNavBar.mjs.map +1 -1
  23. package/dist/components/layouts/AppNavBar.mjs.map +1 -1
  24. package/dist/components/layouts/MdSideBarNavigation.mjs.map +1 -1
  25. package/dist/components/layouts/NavBar.mjs.map +1 -1
  26. package/dist/components/layouts/NotificationsPopover.mjs.map +1 -1
  27. package/dist/components/layouts/ProfilePopover.mjs.map +1 -1
  28. package/dist/components/layouts/UsersSelectorPopover.mjs +1 -1
  29. package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -1
  30. package/dist/components/modals/BuyCreditsModal.mjs.map +1 -1
  31. package/dist/components/modals/ModalManager.mjs.map +1 -1
  32. package/dist/components/modals/Modals.mjs.map +1 -1
  33. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +1 -1
  34. package/dist/components/navigation/NavItemsContext.mjs.map +1 -1
  35. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +1 -1
  36. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +1 -1
  37. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +1 -1
  38. package/dist/components/pages/notifications/Notifications.mjs.map +1 -1
  39. package/dist/components/ui/buttons/Button.mjs.map +1 -1
  40. package/dist/components/ui/buttons/CancelButton.mjs.map +1 -1
  41. package/dist/components/ui/buttons/CopyButton.mjs.map +1 -1
  42. package/dist/components/ui/data-display/Accordion.mjs.map +1 -1
  43. package/dist/components/ui/data-display/Badge.mjs.map +1 -1
  44. package/dist/components/ui/data-display/Card.mjs.map +1 -1
  45. package/dist/components/ui/data-display/CardBrandIcons.mjs.map +1 -1
  46. package/dist/components/ui/data-display/CardItem.mjs.map +1 -1
  47. package/dist/components/ui/data-display/Pagination.mjs.map +1 -1
  48. package/dist/components/ui/data-display/PaymentInfoCard.mjs.map +1 -1
  49. package/dist/components/ui/data-display/ScrollArea.mjs.map +1 -1
  50. package/dist/components/ui/data-display/Separator.mjs.map +1 -1
  51. package/dist/components/ui/data-display/Table.mjs.map +1 -1
  52. package/dist/components/ui/data-display/Tabs.mjs.map +1 -1
  53. package/dist/components/ui/feedback/CircularProgress.mjs.map +1 -1
  54. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +1 -1
  55. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +1 -1
  56. package/dist/components/ui/feedback/Progress.mjs.map +1 -1
  57. package/dist/components/ui/feedback/Skeleton.mjs.map +1 -1
  58. package/dist/components/ui/feedback/Toast.mjs.map +1 -1
  59. package/dist/components/ui/form/Calendar.mjs.map +1 -1
  60. package/dist/components/ui/form/Checkbox.mjs.map +1 -1
  61. package/dist/components/ui/form/ComboboxField.mjs.map +1 -1
  62. package/dist/components/ui/form/DatePicker.mjs.map +1 -1
  63. package/dist/components/ui/form/DateRangePicker.mjs.map +1 -1
  64. package/dist/components/ui/form/FormField.mjs.map +1 -1
  65. package/dist/components/ui/form/Input.mjs.map +1 -1
  66. package/dist/components/ui/form/InputOtp.mjs.map +1 -1
  67. package/dist/components/ui/form/PhoneInput.mjs.map +1 -1
  68. package/dist/components/ui/form/RadioGroup.mjs.map +1 -1
  69. package/dist/components/ui/form/Select.mjs +1 -1
  70. package/dist/components/ui/form/Select.mjs.map +1 -1
  71. package/dist/components/ui/form/Switch.mjs.map +1 -1
  72. package/dist/components/ui/form/Textarea.mjs.map +1 -1
  73. package/dist/components/ui/overlay/Command.mjs.map +1 -1
  74. package/dist/components/ui/overlay/Dialog.mjs.map +1 -1
  75. package/dist/components/ui/overlay/Popover.mjs.map +1 -1
  76. package/dist/components/ui/overlay/Sheet.mjs.map +1 -1
  77. package/dist/components/ui/overlay/Tooltip.mjs.map +1 -1
  78. package/dist/components/widgets/notifications/NotificationCard.mjs.map +1 -1
  79. package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -1
  80. package/dist/hooks/useDebounce.mjs.map +1 -1
  81. package/dist/hooks/useDebounceState.mjs.map +1 -1
  82. package/dist/hooks/useDebouncedEffect.mjs.map +1 -1
  83. package/dist/index.mjs.map +1 -1
  84. package/dist/infra/utils/clsx.mjs.map +1 -1
  85. package/dist/infra/utils/parser.mjs.map +1 -1
  86. package/dist/infra/utils/percentage.mjs.map +1 -1
  87. package/dist/middleware.mjs.map +1 -1
  88. package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
  89. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +1 -1
  90. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +1 -1
  91. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +1 -1
  92. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +1 -1
  93. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +1 -1
  94. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +1 -1
  95. package/dist/modules/accounts/hooks/useTimezones.mjs.map +1 -1
  96. package/dist/modules/accounts/services/account.service.mjs.map +1 -1
  97. package/dist/modules/auth/actions/validate-session.action.mjs.map +1 -1
  98. package/dist/modules/auth/hooks/login.hook.mjs.map +1 -1
  99. package/dist/modules/auth/hooks/logout.hook.mjs.map +1 -1
  100. package/dist/modules/auth/hooks/register.hook.mjs.map +1 -1
  101. package/dist/modules/cards/actions/list-cards.action.mjs.map +1 -1
  102. package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
  103. package/dist/modules/cards/services/cards.service.mjs.map +1 -1
  104. package/dist/modules/cards/types.mjs.map +1 -1
  105. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +1 -1
  106. package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +1 -1
  107. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +1 -1
  108. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
  109. package/dist/modules/plans/services/plans.service.mjs.map +1 -1
  110. package/dist/modules/plans/types/plan.type.mjs.map +1 -1
  111. package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -1
  112. package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +1 -1
  113. package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -1
  114. package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -1
  115. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -1
  116. package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +1 -1
  117. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
  118. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
  119. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
  120. package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +1 -1
  121. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +1 -1
  122. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +1 -1
  123. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +1 -1
  124. package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +1 -1
  125. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +1 -1
  126. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
  127. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
  128. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +1 -1
  129. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +1 -1
  130. package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +1 -1
  131. package/dist/modules/subscriptions/utils/periodicity.mjs.map +1 -1
  132. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +1 -1
  133. package/dist/modules/users/action/find-user-by-id.action.mjs.map +1 -1
  134. package/dist/modules/users/action/list-messages.action.mjs.map +1 -1
  135. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +1 -1
  136. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +1 -1
  137. package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
  138. package/dist/modules/users/services/messages.service.mjs.map +1 -1
  139. package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs.map +1 -1
  140. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +1 -1
  141. package/dist/modules/whitelabel/actions/revalidate-whitelabel-styles.action.mjs.map +1 -1
  142. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +1 -1
  143. package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs.map +1 -1
  144. package/dist/providers/whitelabel.provider.mjs.map +1 -1
  145. package/dist/store/useAccountModals.mjs.map +1 -1
  146. package/dist/store/useBuyCreditsModal.mjs.map +1 -1
  147. package/dist/store/useModalManager.mjs.map +1 -1
  148. package/dist/utils/countries.mjs.map +1 -1
  149. package/dist/utils/safeServerAction.mjs.map +1 -1
  150. package/dist/utils/withAction.mjs.map +1 -1
  151. package/package.json +89 -89
  152. package/src/components/account/AccountModals.tsx +17 -17
  153. package/src/components/account/ConfigurationsMyAccountModal.tsx +150 -150
  154. package/src/components/account/ConfirmDeleteAccountModal.tsx +55 -55
  155. package/src/components/account/ConfirmGlobalPreferencesModal.tsx +66 -66
  156. package/src/components/account/DeleteAccountModal.tsx +130 -130
  157. package/src/components/account/DisableTwoFactorAuthModal.tsx +86 -86
  158. package/src/components/account/IsntPossibleDeleteAccountModal.tsx +49 -49
  159. package/src/components/account/TwoFactorAuthModal.tsx +223 -223
  160. package/src/components/account/hooks/useChangePhoneForm.tsx +81 -81
  161. package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
  162. package/src/components/account/sections/ChangeEmailModal.tsx +225 -225
  163. package/src/components/account/sections/ChangePasswordSection.tsx +64 -64
  164. package/src/components/account/sections/ChangePhoneModal.tsx +231 -231
  165. package/src/components/account/sections/MyProfileSection.tsx +327 -327
  166. package/src/components/account/sections/PreferencesSection.tsx +273 -273
  167. package/src/components/account/sections/SecuritySection.tsx +160 -160
  168. package/src/components/embeds/CrispEmbed.tsx +101 -101
  169. package/src/components/embeds/FrillEmbed.tsx +119 -119
  170. package/src/components/handlers/SearchParamsHandler.tsx +61 -61
  171. package/src/components/layouts/AppMobileNavBar.tsx +118 -118
  172. package/src/components/layouts/AppNavBar.tsx +51 -51
  173. package/src/components/layouts/MdSideBarNavigation.tsx +56 -56
  174. package/src/components/layouts/NavBar.tsx +120 -120
  175. package/src/components/layouts/NotificationsPopover.tsx +115 -115
  176. package/src/components/layouts/ProfilePopover.tsx +164 -164
  177. package/src/components/layouts/UsersSelectorPopover.tsx +238 -238
  178. package/src/components/modals/BuyCreditsModal.tsx +301 -301
  179. package/src/components/modals/ModalManager.tsx +29 -29
  180. package/src/components/modals/Modals.tsx +26 -26
  181. package/src/components/navigation/CancelledSubscriptionBanner.tsx +69 -69
  182. package/src/components/navigation/NavItemsContext.ts +20 -20
  183. package/src/components/navigation/ProjectSelectorPopover.tsx +157 -157
  184. package/src/components/navigation/shells/TabsMobileShell.tsx +72 -72
  185. package/src/components/navigation/subcomponents/ProjectSelector.tsx +156 -156
  186. package/src/components/pages/notifications/Notifications.tsx +160 -160
  187. package/src/components/ui/buttons/Button.tsx +57 -57
  188. package/src/components/ui/buttons/CancelButton.tsx +14 -14
  189. package/src/components/ui/buttons/CopyButton.tsx +54 -54
  190. package/src/components/ui/data-display/Accordion.tsx +81 -81
  191. package/src/components/ui/data-display/Badge.tsx +47 -47
  192. package/src/components/ui/data-display/Card.tsx +93 -93
  193. package/src/components/ui/data-display/CardBrandIcons.tsx +336 -336
  194. package/src/components/ui/data-display/CardItem.tsx +75 -75
  195. package/src/components/ui/data-display/Pagination.tsx +126 -126
  196. package/src/components/ui/data-display/PaymentInfoCard.tsx +186 -186
  197. package/src/components/ui/data-display/ScrollArea.tsx +59 -59
  198. package/src/components/ui/data-display/Separator.tsx +29 -29
  199. package/src/components/ui/data-display/Table.tsx +117 -117
  200. package/src/components/ui/data-display/Tabs.tsx +67 -67
  201. package/src/components/ui/feedback/CircularProgress.tsx +75 -75
  202. package/src/components/ui/feedback/DefaultCircularProgress.tsx +61 -61
  203. package/src/components/ui/feedback/LoadingOverlay.tsx +31 -31
  204. package/src/components/ui/feedback/Progress.tsx +40 -40
  205. package/src/components/ui/feedback/Skeleton.tsx +5 -5
  206. package/src/components/ui/feedback/Toast.tsx +101 -101
  207. package/src/components/ui/form/Calendar.tsx +228 -228
  208. package/src/components/ui/form/Checkbox.tsx +31 -31
  209. package/src/components/ui/form/ComboboxField.tsx +154 -154
  210. package/src/components/ui/form/DatePicker.tsx +97 -97
  211. package/src/components/ui/form/DateRangePicker.tsx +108 -108
  212. package/src/components/ui/form/FormField.tsx +131 -131
  213. package/src/components/ui/form/Input.tsx +20 -20
  214. package/src/components/ui/form/InputOtp.tsx +80 -80
  215. package/src/components/ui/form/PhoneInput.tsx +205 -205
  216. package/src/components/ui/form/RadioGroup.tsx +45 -45
  217. package/src/components/ui/form/Select.tsx +200 -200
  218. package/src/components/ui/form/Switch.tsx +32 -32
  219. package/src/components/ui/form/Textarea.tsx +19 -19
  220. package/src/components/ui/overlay/Command.tsx +185 -185
  221. package/src/components/ui/overlay/Dialog.tsx +151 -151
  222. package/src/components/ui/overlay/Popover.tsx +49 -49
  223. package/src/components/ui/overlay/Sheet.tsx +166 -166
  224. package/src/components/ui/overlay/Tooltip.tsx +62 -62
  225. package/src/components/widgets/notifications/NotificationCard.tsx +68 -68
  226. package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
  227. package/src/hooks/useDebounce.ts +26 -26
  228. package/src/hooks/useDebounceState.ts +11 -11
  229. package/src/hooks/useDebouncedEffect.ts +69 -69
  230. package/src/index.ts +376 -376
  231. package/src/infra/utils/clsx.ts +6 -6
  232. package/src/infra/utils/parser.ts +52 -52
  233. package/src/infra/utils/percentage.ts +42 -42
  234. package/src/middleware.ts +4 -4
  235. package/src/modules/accounts/actions/account-management.action.ts +91 -91
  236. package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
  237. package/src/modules/accounts/actions/list-currencies.action.ts +8 -8
  238. package/src/modules/accounts/actions/list-timezones.action.ts +8 -8
  239. package/src/modules/accounts/hooks/current-account.hook.tsx +22 -22
  240. package/src/modules/accounts/hooks/useAccountManagement.ts +85 -85
  241. package/src/modules/accounts/hooks/useCurrencies.ts +15 -15
  242. package/src/modules/accounts/hooks/useTimezones.ts +15 -15
  243. package/src/modules/accounts/services/account.service.ts +236 -236
  244. package/src/modules/accounts/types.ts +214 -214
  245. package/src/modules/auth/actions/validate-session.action.ts +56 -56
  246. package/src/modules/auth/hooks/login.hook.tsx +13 -13
  247. package/src/modules/auth/hooks/logout.hook.tsx +11 -11
  248. package/src/modules/auth/hooks/register.hook.tsx +11 -11
  249. package/src/modules/cards/actions/list-cards.action.ts +8 -8
  250. package/src/modules/cards/hooks/cards.hook.ts +14 -14
  251. package/src/modules/cards/services/cards.service.ts +32 -32
  252. package/src/modules/cards/types.ts +32 -32
  253. package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
  254. package/src/modules/plans/actions/find-plan-by-id.action.ts +8 -8
  255. package/src/modules/plans/hooks/use-has-plan-addon.hook.ts +17 -17
  256. package/src/modules/plans/hooks/use-plan-by-id.hook.ts +13 -13
  257. package/src/modules/plans/services/plans.service.ts +36 -36
  258. package/src/modules/plans/types/plan.type.ts +21 -21
  259. package/src/modules/projects/actions/add-project-user.action.ts +9 -9
  260. package/src/modules/projects/actions/list-all-account-users.action.ts +9 -9
  261. package/src/modules/projects/actions/list-available-users.action.ts +9 -9
  262. package/src/modules/projects/actions/list-project-users.action.ts +9 -9
  263. package/src/modules/projects/actions/remove-project-user.action.ts +9 -9
  264. package/src/modules/projects/hooks/add-project-user.hook.ts +69 -69
  265. package/src/modules/projects/hooks/list-all-account-users.hook.ts +34 -34
  266. package/src/modules/projects/hooks/list-available-users.hook.ts +33 -33
  267. package/src/modules/projects/hooks/list-project-users.hook.ts +33 -33
  268. package/src/modules/projects/hooks/remove-project-user.hook.ts +69 -69
  269. package/src/modules/subscriptions/actions/calculate-subscription.action.ts +9 -9
  270. package/src/modules/subscriptions/actions/list-subscriptions.action.ts +9 -9
  271. package/src/modules/subscriptions/actions/update-subscription-plan.action.ts +26 -26
  272. package/src/modules/subscriptions/constants/query-keys.constants.ts +1 -1
  273. package/src/modules/subscriptions/hooks/calculate-subscription.hook.ts +13 -13
  274. package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +19 -19
  275. package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +16 -16
  276. package/src/modules/subscriptions/hooks/update-subscription-plan.hook.ts +25 -25
  277. package/src/modules/subscriptions/types/billing-period.type.ts +1 -1
  278. package/src/modules/subscriptions/types/calculate-subscription.type.ts +75 -75
  279. package/src/modules/subscriptions/utils/build-plan-extras.ts +56 -56
  280. package/src/modules/subscriptions/utils/periodicity.ts +52 -52
  281. package/src/modules/subscriptions/utils/resolve-plan-extras-prices.ts +23 -23
  282. package/src/modules/users/action/find-user-by-id.action.ts +8 -8
  283. package/src/modules/users/action/list-messages.action.ts +12 -12
  284. package/src/modules/users/action/mark-all-messages-as-read.action.ts +8 -8
  285. package/src/modules/users/action/mark-message-as-read.action.ts +8 -8
  286. package/src/modules/users/hooks/messages.hook.ts +60 -60
  287. package/src/modules/users/services/messages.service.ts +48 -48
  288. package/src/modules/whitelabel/actions/find-whitelabel-styles.action.ts +14 -14
  289. package/src/modules/whitelabel/actions/find-whitelabel.action.ts +23 -23
  290. package/src/modules/whitelabel/actions/revalidate-whitelabel-styles.action.ts +10 -10
  291. package/src/modules/whitelabel/actions/revalidate-whitelabel.action.ts +19 -19
  292. package/src/modules/whitelabel/schema.ts +83 -83
  293. package/src/modules/whitelabel/services/whitelabel-styles.service.ts +129 -129
  294. package/src/modules/whitelabel/styles-schema.ts +37 -37
  295. package/src/providers/whitelabel.provider.tsx +54 -54
  296. package/src/store/useAccountModals.ts +55 -55
  297. package/src/store/useBuyCreditsModal.ts +25 -25
  298. package/src/store/useModalManager.ts +104 -104
  299. package/src/utils/countries.ts +224 -224
  300. package/src/utils/safeServerAction.ts +21 -21
  301. package/src/utils/withAction.ts +13 -13
@@ -1,15 +1,15 @@
1
- 'use client';
2
-
3
- import { useQuery } from '@tanstack/react-query';
4
- import { listCurrenciesAction } from '../actions/list-currencies.action';
5
- import { withAction } from '../../../utils/withAction';
6
-
7
- export const CURRENCIES_QUERY_KEY = ['currencies'];
8
-
9
- export function useCurrencies() {
10
- return useQuery({
11
- queryKey: CURRENCIES_QUERY_KEY,
12
- queryFn: withAction(listCurrenciesAction),
13
- staleTime: Infinity,
14
- });
15
- }
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import { listCurrenciesAction } from '../actions/list-currencies.action';
5
+ import { withAction } from '../../../utils/withAction';
6
+
7
+ export const CURRENCIES_QUERY_KEY = ['currencies'];
8
+
9
+ export function useCurrencies() {
10
+ return useQuery({
11
+ queryKey: CURRENCIES_QUERY_KEY,
12
+ queryFn: withAction(listCurrenciesAction),
13
+ staleTime: Infinity,
14
+ });
15
+ }
@@ -1,15 +1,15 @@
1
- 'use client';
2
-
3
- import { useQuery } from '@tanstack/react-query';
4
- import { listTimezonesAction } from '../actions/list-timezones.action';
5
- import { withAction } from '../../../utils/withAction';
6
-
7
- export const TIMEZONES_QUERY_KEY = ['timezones'];
8
-
9
- export function useTimezones() {
10
- return useQuery({
11
- queryKey: TIMEZONES_QUERY_KEY,
12
- queryFn: withAction(listTimezonesAction),
13
- staleTime: Infinity,
14
- });
15
- }
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import { listTimezonesAction } from '../actions/list-timezones.action';
5
+ import { withAction } from '../../../utils/withAction';
6
+
7
+ export const TIMEZONES_QUERY_KEY = ['timezones'];
8
+
9
+ export function useTimezones() {
10
+ return useQuery({
11
+ queryKey: TIMEZONES_QUERY_KEY,
12
+ queryFn: withAction(listTimezonesAction),
13
+ staleTime: Infinity,
14
+ });
15
+ }
@@ -1,236 +1,236 @@
1
- import 'server-only';
2
-
3
- import { api } from '../../../infra/api/client';
4
- import { ApiError } from '../../../infra/api/types';
5
- import { buildQueryParams } from '../../../infra/utils/params';
6
- import { getUserContext } from '../../auth/utils/get-user-context';
7
- import { fileToBase64 } from '../../../utils/file/index';
8
- import type {
9
- Account,
10
- AccountUsersPaginationParams,
11
- ChangePasswordRequest,
12
- ChangePasswordResponse,
13
- ChangeUserPhotoResponse,
14
- CreateAccountUserRequest,
15
- CreateAccountUserResponse,
16
- DeleteAccountResponse,
17
- DeleteAccountUserResponse,
18
- GetAccountDataResponse,
19
- ListAccountUsersResponse,
20
- UpdateAccountRequest,
21
- UpdateAccountResponse,
22
- UpdateAccountUserRequest,
23
- UpdateAccountUserResponse,
24
- } from '../types';
25
-
26
- class AccountService {
27
- async findCurrentAccount(): Promise<Account> {
28
- const { id_account } = await getUserContext();
29
- const response = await api.apps.get<GetAccountDataResponse>(`/accounts/${id_account}`);
30
-
31
- if (response.status === 0 || !response.data?.[0]) {
32
- throw new ApiError(
33
- response.message || 'Erro ao buscar dados da conta',
34
- 'GET_ACCOUNT_FAILED',
35
- 400
36
- );
37
- }
38
-
39
- return response.data[0];
40
- }
41
-
42
- async listAccountUsers(params?: Partial<AccountUsersPaginationParams>) {
43
- const { id_account } = await getUserContext();
44
- const queryParams = buildQueryParams(params);
45
- const endpoint = `/accounts/${id_account}/users?${queryParams}`;
46
- const response = await api.apps.get<ListAccountUsersResponse>(endpoint);
47
-
48
- if (response.status === 0) {
49
- throw new ApiError(
50
- response.message || 'Erro ao listar usuários',
51
- 'LIST_ACCOUNT_USERS_FAILED',
52
- 400
53
- );
54
- }
55
-
56
- return {
57
- users: response.data || [],
58
- total: response.total || 0,
59
- };
60
- }
61
-
62
- async changeUserPhoto(userId: number, photo: File): Promise<ChangeUserPhotoResponse> {
63
- const { id_account } = await getUserContext();
64
- const base64 = await fileToBase64(photo);
65
- const response = await api.apps.put<ChangeUserPhotoResponse>(
66
- `/accounts/${id_account}/users/${userId}/file/photo`,
67
- { file: base64 }
68
- );
69
-
70
- if (response.status === 0) {
71
- throw new ApiError(
72
- response.message || 'Erro ao mudar foto do usuário',
73
- 'CHANGE_USER_PHOTO_FAILED',
74
- 400
75
- );
76
- }
77
-
78
- return response;
79
- }
80
-
81
- async deleteAccountUser(userId: number): Promise<DeleteAccountUserResponse> {
82
- const { id_account } = await getUserContext();
83
- const response = await api.apps.delete<DeleteAccountUserResponse>(
84
- `/accounts/${id_account}/users/${userId}`
85
- );
86
-
87
- if (response.status === 0) {
88
- throw new ApiError(response.message || 'Erro ao deletar usuário', 'DELETE_USER_FAILED', 400);
89
- }
90
-
91
- return response;
92
- }
93
-
94
- async deleteAccount(): Promise<DeleteAccountResponse> {
95
- const { id_account } = await getUserContext();
96
- const response = await api.apps.delete<DeleteAccountResponse>(`/accounts/${id_account}`);
97
-
98
- if (response.status === 0) {
99
- throw new ApiError(response.message || 'Erro ao deletar conta', 'DELETE_ACCOUNT_FAILED', 400);
100
- }
101
-
102
- return response;
103
- }
104
-
105
- async createAccountUser(user: CreateAccountUserRequest): Promise<CreateAccountUserResponse> {
106
- const { id_account } = await getUserContext();
107
- const response = await api.apps.post<CreateAccountUserResponse>(
108
- `/accounts/${id_account}/users`,
109
- {
110
- ...user,
111
- photo: user.photo ? await fileToBase64(user.photo) : null,
112
- }
113
- );
114
-
115
- if (response.status === 0) {
116
- throw new ApiError(response.message || 'Erro ao criar usuário', 'CREATE_USER_FAILED', 400);
117
- }
118
-
119
- return response;
120
- }
121
-
122
- private async resolvePhotoField(user: UpdateAccountUserRequest): Promise<{ photo?: string | null }> {
123
- if (user.photo === undefined) return {};
124
- const photo =
125
- user.photo != null && typeof user.photo !== 'string'
126
- ? await fileToBase64(user.photo)
127
- : user.photo;
128
- return { photo };
129
- }
130
-
131
- async updateAccountUser(user: UpdateAccountUserRequest): Promise<UpdateAccountUserResponse> {
132
- const { id_account, id_user } = await getUserContext();
133
- const response = await api.apps.put<UpdateAccountUserResponse>(
134
- `/accounts/${id_account}/users/${id_user}`,
135
- { ...user, ...(await this.resolvePhotoField(user)) }
136
- );
137
-
138
- if (response.status === 0) {
139
- throw new ApiError(
140
- response.message || 'Erro ao atualizar usuário',
141
- 'UPDATE_USER_FAILED',
142
- 400
143
- );
144
- }
145
-
146
- return response;
147
- }
148
-
149
- async updateAccountUserById(
150
- userId: number,
151
- user: UpdateAccountUserRequest
152
- ): Promise<UpdateAccountUserResponse> {
153
- const { id_account } = await getUserContext();
154
- const response = await api.apps.put<UpdateAccountUserResponse>(
155
- `/accounts/${id_account}/users/${userId}`,
156
- { ...user, ...(await this.resolvePhotoField(user)) }
157
- );
158
-
159
- if (response.status === 0) {
160
- throw new ApiError(
161
- response.message || 'Erro ao atualizar usuário',
162
- 'UPDATE_USER_FAILED',
163
- 400
164
- );
165
- }
166
-
167
- return response;
168
- }
169
-
170
- async updateAccount(data: UpdateAccountRequest): Promise<UpdateAccountResponse> {
171
- const { id_account } = await getUserContext();
172
- const response = await api.apps.put<UpdateAccountResponse>(`/accounts/${id_account}`, data);
173
-
174
- if (response.status === 0) {
175
- throw new ApiError(
176
- response.message || 'Erro ao atualizar conta',
177
- 'UPDATE_ACCOUNT_FAILED',
178
- 400
179
- );
180
- }
181
-
182
- return response;
183
- }
184
-
185
- async requestContactReset(type: 'email' | 'phone', newContact: string, ddi?: string): Promise<void> {
186
- const { id_account, id_user } = await getUserContext();
187
- const response = await api.apps.post<{ status: number; message: string }>(
188
- `/accounts/${id_account}/users/${id_user}/resetContact/request`,
189
- { type, newContact, ...(ddi ? { ddi } : {}) }
190
- );
191
-
192
- if (response.status === 0) {
193
- throw new ApiError(
194
- response.message || 'Erro ao solicitar alteração',
195
- 'REQUEST_CONTACT_RESET_FAILED',
196
- 400
197
- );
198
- }
199
- }
200
-
201
- async confirmContactReset(type: 'email' | 'phone', token: string, newContact: string, ddi?: string): Promise<void> {
202
- const { id_account, id_user } = await getUserContext();
203
- const response = await api.apps.post<{ status: number; message: string }>(
204
- `/accounts/${id_account}/users/${id_user}/resetContact/confirm`,
205
- { type, token, newContact, ...(ddi ? { ddi } : {}) }
206
- );
207
-
208
- if (response.status === 0) {
209
- throw new ApiError(
210
- response.message || 'Código inválido ou expirado',
211
- 'CONFIRM_CONTACT_RESET_FAILED',
212
- 400
213
- );
214
- }
215
- }
216
-
217
- async changePassword(data: ChangePasswordRequest): Promise<ChangePasswordResponse> {
218
- const { id_account, id_user } = await getUserContext();
219
- const response = await api.apps.put<ChangePasswordResponse>(
220
- `/accounts/${id_account}/users/${id_user}/action/changePassword`,
221
- data
222
- );
223
-
224
- if (response.status === 0) {
225
- throw new ApiError(
226
- response.message || 'Erro ao alterar senha',
227
- 'CHANGE_PASSWORD_FAILED',
228
- 400
229
- );
230
- }
231
-
232
- return response;
233
- }
234
- }
235
-
236
- export const accountService = new AccountService();
1
+ import 'server-only';
2
+
3
+ import { api } from '../../../infra/api/client';
4
+ import { ApiError } from '../../../infra/api/types';
5
+ import { buildQueryParams } from '../../../infra/utils/params';
6
+ import { getUserContext } from '../../auth/utils/get-user-context';
7
+ import { fileToBase64 } from '../../../utils/file/index';
8
+ import type {
9
+ Account,
10
+ AccountUsersPaginationParams,
11
+ ChangePasswordRequest,
12
+ ChangePasswordResponse,
13
+ ChangeUserPhotoResponse,
14
+ CreateAccountUserRequest,
15
+ CreateAccountUserResponse,
16
+ DeleteAccountResponse,
17
+ DeleteAccountUserResponse,
18
+ GetAccountDataResponse,
19
+ ListAccountUsersResponse,
20
+ UpdateAccountRequest,
21
+ UpdateAccountResponse,
22
+ UpdateAccountUserRequest,
23
+ UpdateAccountUserResponse,
24
+ } from '../types';
25
+
26
+ class AccountService {
27
+ async findCurrentAccount(): Promise<Account> {
28
+ const { id_account } = await getUserContext();
29
+ const response = await api.apps.get<GetAccountDataResponse>(`/accounts/${id_account}`);
30
+
31
+ if (response.status === 0 || !response.data?.[0]) {
32
+ throw new ApiError(
33
+ response.message || 'Erro ao buscar dados da conta',
34
+ 'GET_ACCOUNT_FAILED',
35
+ 400
36
+ );
37
+ }
38
+
39
+ return response.data[0];
40
+ }
41
+
42
+ async listAccountUsers(params?: Partial<AccountUsersPaginationParams>) {
43
+ const { id_account } = await getUserContext();
44
+ const queryParams = buildQueryParams(params);
45
+ const endpoint = `/accounts/${id_account}/users?${queryParams}`;
46
+ const response = await api.apps.get<ListAccountUsersResponse>(endpoint);
47
+
48
+ if (response.status === 0) {
49
+ throw new ApiError(
50
+ response.message || 'Erro ao listar usuários',
51
+ 'LIST_ACCOUNT_USERS_FAILED',
52
+ 400
53
+ );
54
+ }
55
+
56
+ return {
57
+ users: response.data || [],
58
+ total: response.total || 0,
59
+ };
60
+ }
61
+
62
+ async changeUserPhoto(userId: number, photo: File): Promise<ChangeUserPhotoResponse> {
63
+ const { id_account } = await getUserContext();
64
+ const base64 = await fileToBase64(photo);
65
+ const response = await api.apps.put<ChangeUserPhotoResponse>(
66
+ `/accounts/${id_account}/users/${userId}/file/photo`,
67
+ { file: base64 }
68
+ );
69
+
70
+ if (response.status === 0) {
71
+ throw new ApiError(
72
+ response.message || 'Erro ao mudar foto do usuário',
73
+ 'CHANGE_USER_PHOTO_FAILED',
74
+ 400
75
+ );
76
+ }
77
+
78
+ return response;
79
+ }
80
+
81
+ async deleteAccountUser(userId: number): Promise<DeleteAccountUserResponse> {
82
+ const { id_account } = await getUserContext();
83
+ const response = await api.apps.delete<DeleteAccountUserResponse>(
84
+ `/accounts/${id_account}/users/${userId}`
85
+ );
86
+
87
+ if (response.status === 0) {
88
+ throw new ApiError(response.message || 'Erro ao deletar usuário', 'DELETE_USER_FAILED', 400);
89
+ }
90
+
91
+ return response;
92
+ }
93
+
94
+ async deleteAccount(): Promise<DeleteAccountResponse> {
95
+ const { id_account } = await getUserContext();
96
+ const response = await api.apps.delete<DeleteAccountResponse>(`/accounts/${id_account}`);
97
+
98
+ if (response.status === 0) {
99
+ throw new ApiError(response.message || 'Erro ao deletar conta', 'DELETE_ACCOUNT_FAILED', 400);
100
+ }
101
+
102
+ return response;
103
+ }
104
+
105
+ async createAccountUser(user: CreateAccountUserRequest): Promise<CreateAccountUserResponse> {
106
+ const { id_account } = await getUserContext();
107
+ const response = await api.apps.post<CreateAccountUserResponse>(
108
+ `/accounts/${id_account}/users`,
109
+ {
110
+ ...user,
111
+ photo: user.photo ? await fileToBase64(user.photo) : null,
112
+ }
113
+ );
114
+
115
+ if (response.status === 0) {
116
+ throw new ApiError(response.message || 'Erro ao criar usuário', 'CREATE_USER_FAILED', 400);
117
+ }
118
+
119
+ return response;
120
+ }
121
+
122
+ private async resolvePhotoField(user: UpdateAccountUserRequest): Promise<{ photo?: string | null }> {
123
+ if (user.photo === undefined) return {};
124
+ const photo =
125
+ user.photo != null && typeof user.photo !== 'string'
126
+ ? await fileToBase64(user.photo)
127
+ : user.photo;
128
+ return { photo };
129
+ }
130
+
131
+ async updateAccountUser(user: UpdateAccountUserRequest): Promise<UpdateAccountUserResponse> {
132
+ const { id_account, id_user } = await getUserContext();
133
+ const response = await api.apps.put<UpdateAccountUserResponse>(
134
+ `/accounts/${id_account}/users/${id_user}`,
135
+ { ...user, ...(await this.resolvePhotoField(user)) }
136
+ );
137
+
138
+ if (response.status === 0) {
139
+ throw new ApiError(
140
+ response.message || 'Erro ao atualizar usuário',
141
+ 'UPDATE_USER_FAILED',
142
+ 400
143
+ );
144
+ }
145
+
146
+ return response;
147
+ }
148
+
149
+ async updateAccountUserById(
150
+ userId: number,
151
+ user: UpdateAccountUserRequest
152
+ ): Promise<UpdateAccountUserResponse> {
153
+ const { id_account } = await getUserContext();
154
+ const response = await api.apps.put<UpdateAccountUserResponse>(
155
+ `/accounts/${id_account}/users/${userId}`,
156
+ { ...user, ...(await this.resolvePhotoField(user)) }
157
+ );
158
+
159
+ if (response.status === 0) {
160
+ throw new ApiError(
161
+ response.message || 'Erro ao atualizar usuário',
162
+ 'UPDATE_USER_FAILED',
163
+ 400
164
+ );
165
+ }
166
+
167
+ return response;
168
+ }
169
+
170
+ async updateAccount(data: UpdateAccountRequest): Promise<UpdateAccountResponse> {
171
+ const { id_account } = await getUserContext();
172
+ const response = await api.apps.put<UpdateAccountResponse>(`/accounts/${id_account}`, data);
173
+
174
+ if (response.status === 0) {
175
+ throw new ApiError(
176
+ response.message || 'Erro ao atualizar conta',
177
+ 'UPDATE_ACCOUNT_FAILED',
178
+ 400
179
+ );
180
+ }
181
+
182
+ return response;
183
+ }
184
+
185
+ async requestContactReset(type: 'email' | 'phone', newContact: string, ddi?: string): Promise<void> {
186
+ const { id_account, id_user } = await getUserContext();
187
+ const response = await api.apps.post<{ status: number; message: string }>(
188
+ `/accounts/${id_account}/users/${id_user}/resetContact/request`,
189
+ { type, newContact, ...(ddi ? { ddi } : {}) }
190
+ );
191
+
192
+ if (response.status === 0) {
193
+ throw new ApiError(
194
+ response.message || 'Erro ao solicitar alteração',
195
+ 'REQUEST_CONTACT_RESET_FAILED',
196
+ 400
197
+ );
198
+ }
199
+ }
200
+
201
+ async confirmContactReset(type: 'email' | 'phone', token: string, newContact: string, ddi?: string): Promise<void> {
202
+ const { id_account, id_user } = await getUserContext();
203
+ const response = await api.apps.post<{ status: number; message: string }>(
204
+ `/accounts/${id_account}/users/${id_user}/resetContact/confirm`,
205
+ { type, token, newContact, ...(ddi ? { ddi } : {}) }
206
+ );
207
+
208
+ if (response.status === 0) {
209
+ throw new ApiError(
210
+ response.message || 'Código inválido ou expirado',
211
+ 'CONFIRM_CONTACT_RESET_FAILED',
212
+ 400
213
+ );
214
+ }
215
+ }
216
+
217
+ async changePassword(data: ChangePasswordRequest): Promise<ChangePasswordResponse> {
218
+ const { id_account, id_user } = await getUserContext();
219
+ const response = await api.apps.put<ChangePasswordResponse>(
220
+ `/accounts/${id_account}/users/${id_user}/action/changePassword`,
221
+ data
222
+ );
223
+
224
+ if (response.status === 0) {
225
+ throw new ApiError(
226
+ response.message || 'Erro ao alterar senha',
227
+ 'CHANGE_PASSWORD_FAILED',
228
+ 400
229
+ );
230
+ }
231
+
232
+ return response;
233
+ }
234
+ }
235
+
236
+ export const accountService = new AccountService();