@greatapps/common 1.1.517 → 1.1.519
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/account/ConfigurationsMyAccountModal.mjs +1 -1
- package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -1
- package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -1
- package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -1
- package/dist/components/account/DeleteAccountModal.mjs.map +1 -1
- package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -1
- package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -1
- package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -1
- package/dist/components/account/hooks/useChangePhoneForm.mjs.map +1 -1
- package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +1 -1
- package/dist/components/account/sections/ChangeEmailModal.mjs.map +1 -1
- package/dist/components/account/sections/ChangePasswordSection.mjs.map +1 -1
- package/dist/components/account/sections/ChangePhoneModal.mjs.map +1 -1
- package/dist/components/account/sections/MyProfileSection.mjs.map +1 -1
- package/dist/components/account/sections/PreferencesSection.mjs.map +1 -1
- package/dist/components/account/sections/SecuritySection.mjs.map +1 -1
- package/dist/components/account/sections/TokenSection.mjs +7 -1
- package/dist/components/account/sections/TokenSection.mjs.map +1 -1
- package/dist/components/embeds/ClarityEmbed.mjs +55 -0
- package/dist/components/embeds/ClarityEmbed.mjs.map +1 -0
- package/dist/components/embeds/CrispEmbed.mjs.map +1 -1
- package/dist/components/embeds/EmbedWidgets.mjs +3 -1
- package/dist/components/embeds/EmbedWidgets.mjs.map +1 -1
- package/dist/components/embeds/FrillEmbed.mjs.map +1 -1
- package/dist/components/layouts/AppMobileNavBar.mjs.map +1 -1
- package/dist/components/layouts/AppNavBar.mjs.map +1 -1
- package/dist/components/layouts/MdSideBarNavigation.mjs.map +1 -1
- package/dist/components/layouts/NavBar.mjs.map +1 -1
- package/dist/components/layouts/NotificationsPopover.mjs.map +1 -1
- package/dist/components/layouts/ProfilePopover.mjs.map +1 -1
- package/dist/components/layouts/SideBarNavigation.mjs.map +1 -1
- package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -1
- package/dist/components/layouts/WhitelabelCodes.mjs.map +1 -1
- package/dist/components/modals/BuyCreditsModal.mjs.map +1 -1
- package/dist/components/modals/PaidPlanRequiredModal.mjs.map +1 -1
- package/dist/components/modals/cards/AddCardModal.mjs.map +1 -1
- package/dist/components/modals/cards/CardFormFields.mjs.map +1 -1
- package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +1 -1
- package/dist/components/navigation/NavItemsContext.mjs.map +1 -1
- package/dist/components/navigation/ProjectSelectorPopover.mjs.map +1 -1
- package/dist/components/navigation/shells/TabsMobileShell.mjs.map +1 -1
- package/dist/components/navigation/subcomponents/BottomLinks.mjs.map +1 -1
- package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +1 -1
- package/dist/components/pages/NotFoundPage.mjs.map +1 -1
- package/dist/components/pages/notifications/Notifications.mjs.map +1 -1
- package/dist/components/ui/buttons/Button.mjs.map +1 -1
- package/dist/components/ui/buttons/CancelButton.mjs.map +1 -1
- package/dist/components/ui/buttons/CopyButton.mjs.map +1 -1
- package/dist/components/ui/data-display/Accordion.mjs.map +1 -1
- package/dist/components/ui/data-display/Badge.mjs.map +1 -1
- package/dist/components/ui/data-display/Card.mjs.map +1 -1
- package/dist/components/ui/data-display/CardBrandIcons.mjs.map +1 -1
- package/dist/components/ui/data-display/CardItem.mjs.map +1 -1
- package/dist/components/ui/data-display/Pagination.mjs.map +1 -1
- package/dist/components/ui/data-display/PaymentInfoCard.mjs.map +1 -1
- package/dist/components/ui/data-display/ScrollArea.mjs.map +1 -1
- package/dist/components/ui/data-display/Separator.mjs.map +1 -1
- package/dist/components/ui/data-display/Table.mjs.map +1 -1
- package/dist/components/ui/data-display/Tabs.mjs.map +1 -1
- package/dist/components/ui/feedback/CircularProgress.mjs.map +1 -1
- package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +1 -1
- package/dist/components/ui/feedback/LoadingOverlay.mjs.map +1 -1
- package/dist/components/ui/feedback/Progress.mjs.map +1 -1
- package/dist/components/ui/feedback/Skeleton.mjs.map +1 -1
- package/dist/components/ui/feedback/Toast.mjs.map +1 -1
- package/dist/components/ui/form/Calendar.mjs.map +1 -1
- package/dist/components/ui/form/Checkbox.mjs.map +1 -1
- package/dist/components/ui/form/ComboboxField.mjs.map +1 -1
- package/dist/components/ui/form/DatePicker.mjs +2 -2
- package/dist/components/ui/form/DatePicker.mjs.map +1 -1
- package/dist/components/ui/form/DateRangePicker.mjs.map +1 -1
- package/dist/components/ui/form/FormField.mjs.map +1 -1
- package/dist/components/ui/form/Input.mjs.map +1 -1
- package/dist/components/ui/form/InputOtp.mjs.map +1 -1
- package/dist/components/ui/form/PhoneInput.mjs.map +1 -1
- package/dist/components/ui/form/RadioGroup.mjs.map +1 -1
- package/dist/components/ui/form/Select.mjs +1 -1
- package/dist/components/ui/form/Select.mjs.map +1 -1
- package/dist/components/ui/form/Switch.mjs.map +1 -1
- package/dist/components/ui/form/Textarea.mjs.map +1 -1
- package/dist/components/ui/overlay/Command.mjs.map +1 -1
- package/dist/components/ui/overlay/Dialog.mjs.map +1 -1
- package/dist/components/ui/overlay/Popover.mjs.map +1 -1
- package/dist/components/ui/overlay/Sheet.mjs.map +1 -1
- package/dist/components/ui/overlay/Tooltip.mjs.map +1 -1
- package/dist/components/widgets/ImageUpload/ImageCropModal.mjs.map +1 -1
- package/dist/components/widgets/ImageUpload/ImageTooSmallModal.mjs.map +1 -1
- package/dist/components/widgets/ImageUpload/ImageUpload.mjs.map +1 -1
- package/dist/components/widgets/ImageUpload/index.mjs.map +1 -1
- package/dist/components/widgets/notifications/NotificationCard.mjs.map +1 -1
- package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -1
- package/dist/hooks/useAuthQueryKey.mjs.map +1 -1
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -1
- package/dist/infra/utils/array.mjs.map +1 -1
- package/dist/infra/utils/date.mjs.map +1 -1
- package/dist/middleware.mjs.map +1 -1
- package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
- package/dist/modules/accounts/actions/find-current-account.action.mjs.map +1 -1
- package/dist/modules/accounts/actions/get-account-token.action.mjs.map +1 -1
- package/dist/modules/accounts/actions/list-currencies.action.mjs.map +1 -1
- package/dist/modules/accounts/actions/list-timezones.action.mjs.map +1 -1
- package/dist/modules/accounts/hooks/current-account.hook.mjs.map +1 -1
- package/dist/modules/accounts/hooks/use-account-token.hook.mjs.map +1 -1
- package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +1 -1
- package/dist/modules/accounts/hooks/useCurrencies.mjs.map +1 -1
- package/dist/modules/accounts/hooks/useTimezones.mjs.map +1 -1
- package/dist/modules/accounts/hooks/useViaCep.mjs.map +1 -1
- package/dist/modules/accounts/services/account-token.service.mjs.map +1 -1
- package/dist/modules/accounts/services/account.service.mjs.map +1 -1
- package/dist/modules/auth/actions/validate-session.action.mjs.map +1 -1
- package/dist/modules/auth/hooks/login.hook.mjs.map +1 -1
- package/dist/modules/auth/hooks/logout.hook.mjs.map +1 -1
- package/dist/modules/auth/hooks/register.hook.mjs.map +1 -1
- package/dist/modules/auth/hooks/useManagementPermissions.mjs.map +1 -1
- package/dist/modules/auth/hooks/useUserQuery.mjs.map +1 -1
- package/dist/modules/auth/utils/assert-management-permission.mjs.map +1 -1
- package/dist/modules/auth/utils/assert-management-subscription.mjs.map +1 -1
- package/dist/modules/auth/utils/assert-paid-subscription.mjs.map +1 -1
- package/dist/modules/auth/utils/assert-subscription-addon.mjs.map +1 -1
- package/dist/modules/auth/utils/build-wl-override.mjs.map +1 -1
- package/dist/modules/cards/actions/create-card.action.mjs.map +1 -1
- package/dist/modules/cards/actions/delete-card.action.mjs.map +1 -1
- package/dist/modules/cards/actions/find-card-by-id.action.mjs.map +1 -1
- package/dist/modules/cards/actions/list-cards.action.mjs.map +1 -1
- package/dist/modules/cards/actions/set-default-card.action.mjs.map +1 -1
- package/dist/modules/cards/hooks/card-by-id.hook.mjs.map +1 -1
- package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
- package/dist/modules/cards/hooks/create-card.hook.mjs.map +1 -1
- package/dist/modules/cards/hooks/delete-card.hook.mjs.map +1 -1
- package/dist/modules/cards/hooks/set-default-card.hook.mjs.map +1 -1
- package/dist/modules/cards/services/cards.service.mjs.map +1 -1
- package/dist/modules/cards/types.mjs.map +1 -1
- package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +1 -1
- package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs.map +1 -1
- package/dist/modules/images/actions/process-image.action.mjs.map +1 -1
- package/dist/modules/images/constants/image.constants.mjs.map +1 -1
- package/dist/modules/images/hooks/use-image-upload.hook.mjs.map +1 -1
- package/dist/modules/images/services/image-processing.service.mjs.map +1 -1
- package/dist/modules/images/utils/base64.mjs.map +1 -1
- package/dist/modules/images/utils/compress-image.mjs.map +1 -1
- package/dist/modules/images/utils/crop-image.mjs.map +1 -1
- package/dist/modules/images/utils/validate-image.mjs.map +1 -1
- package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +1 -1
- package/dist/modules/plans/actions/list-plans.action.mjs.map +1 -1
- package/dist/modules/plans/hooks/list-plans.hook.mjs.map +1 -1
- package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +1 -1
- package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
- package/dist/modules/plans/services/plans.service.mjs.map +1 -1
- package/dist/modules/plans/types/plan.type.mjs.map +1 -1
- package/dist/modules/plans/utils/map-api-plan-to-ui.mjs.map +1 -1
- package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -1
- package/dist/modules/projects/actions/create-project.action.mjs.map +1 -1
- package/dist/modules/projects/actions/delete-project.action.mjs.map +1 -1
- package/dist/modules/projects/actions/find-project.action.mjs.map +1 -1
- package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +1 -1
- package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -1
- package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -1
- package/dist/modules/projects/actions/list-projects.action.mjs.map +1 -1
- package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -1
- package/dist/modules/projects/actions/update-project.action.mjs.map +1 -1
- package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/create-project.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/delete-project.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/find-project.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-infinite-projects.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/list-projects.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/update-project.hook.mjs.map +1 -1
- package/dist/modules/projects/services/projects.service.mjs.map +1 -1
- package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +1 -1
- package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +1 -1
- package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +1 -1
- package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +1 -1
- package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +1 -1
- package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
- package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
- package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +1 -1
- package/dist/modules/subscriptions/hooks/use-cancelled-subscription-guard.mjs.map +1 -1
- package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +1 -1
- package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +1 -1
- package/dist/modules/subscriptions/utils/has-subscription-expired.mjs.map +1 -1
- package/dist/modules/subscriptions/utils/periodicity.mjs.map +1 -1
- package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +1 -1
- package/dist/modules/users/action/find-user-by-id.action.mjs.map +1 -1
- package/dist/modules/users/action/list-messages.action.mjs.map +1 -1
- package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +1 -1
- package/dist/modules/users/action/mark-message-as-read.action.mjs.map +1 -1
- package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
- package/dist/modules/users/services/messages.service.mjs.map +1 -1
- package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +1 -1
- package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +1 -1
- package/dist/modules/whitelabel/utils/normalize-hostname.mjs.map +1 -1
- package/dist/providers/auth.provider.mjs.map +1 -1
- package/dist/providers/whitelabel.provider.mjs.map +1 -1
- package/dist/store/useBuyCreditsModal.mjs.map +1 -1
- package/dist/store/useDesktopSidebarStore.mjs.map +1 -1
- package/dist/store/useMdSidebarStore.mjs.map +1 -1
- package/dist/store/usePaidPlanRequiredModal.mjs.map +1 -1
- package/dist/utils/constants/br-states.mjs.map +1 -1
- package/dist/utils/countries.mjs.map +1 -1
- package/dist/utils/format/currency.mjs.map +1 -1
- package/dist/utils/safeServerAction.mjs.map +1 -1
- package/dist/utils/withAction.mjs.map +1 -1
- package/package.json +92 -92
- package/src/components/account/ConfigurationsMyAccountModal.tsx +161 -161
- package/src/components/account/ConfirmDeleteAccountModal.tsx +55 -55
- package/src/components/account/ConfirmGlobalPreferencesModal.tsx +66 -66
- package/src/components/account/DeleteAccountModal.tsx +130 -130
- package/src/components/account/DisableTwoFactorAuthModal.tsx +86 -86
- package/src/components/account/IsntPossibleDeleteAccountModal.tsx +49 -49
- package/src/components/account/TwoFactorAuthModal.tsx +215 -215
- package/src/components/account/hooks/useChangePhoneForm.tsx +107 -107
- package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
- package/src/components/account/sections/ChangeEmailModal.tsx +227 -227
- package/src/components/account/sections/ChangePasswordSection.tsx +64 -64
- package/src/components/account/sections/ChangePhoneModal.tsx +247 -247
- package/src/components/account/sections/MyProfileSection.tsx +328 -328
- package/src/components/account/sections/PreferencesSection.tsx +248 -248
- package/src/components/account/sections/SecuritySection.tsx +46 -46
- package/src/components/account/sections/TokenSection.tsx +73 -64
- package/src/components/embeds/ClarityEmbed.tsx +70 -0
- package/src/components/embeds/CrispEmbed.tsx +156 -156
- package/src/components/embeds/EmbedWidgets.tsx +52 -50
- package/src/components/embeds/FrillEmbed.tsx +129 -129
- package/src/components/layouts/AppMobileNavBar.tsx +80 -80
- package/src/components/layouts/AppNavBar.tsx +40 -40
- package/src/components/layouts/MdSideBarNavigation.tsx +56 -56
- package/src/components/layouts/NavBar.tsx +175 -175
- package/src/components/layouts/NotificationsPopover.tsx +118 -118
- package/src/components/layouts/ProfilePopover.tsx +176 -176
- package/src/components/layouts/SideBarNavigation.tsx +65 -65
- package/src/components/layouts/UsersSelectorPopover.tsx +234 -234
- package/src/components/layouts/WhitelabelCodes.tsx +59 -59
- package/src/components/modals/BuyCreditsModal.tsx +354 -354
- package/src/components/modals/PaidPlanRequiredModal.tsx +57 -57
- package/src/components/modals/cards/AddCardModal.tsx +265 -265
- package/src/components/modals/cards/CardFormFields.tsx +348 -348
- package/src/components/navigation/CancelledSubscriptionBanner.tsx +64 -64
- package/src/components/navigation/NavItemsContext.ts +20 -20
- package/src/components/navigation/ProjectSelectorPopover.tsx +178 -178
- package/src/components/navigation/shells/TabsMobileShell.tsx +74 -74
- package/src/components/navigation/subcomponents/BottomLinks.tsx +37 -37
- package/src/components/navigation/subcomponents/ProjectSelector.tsx +182 -182
- package/src/components/pages/NotFoundPage.tsx +67 -67
- package/src/components/pages/notifications/Notifications.tsx +187 -187
- package/src/components/ui/buttons/Button.tsx +62 -62
- package/src/components/ui/buttons/CancelButton.tsx +14 -14
- package/src/components/ui/buttons/CopyButton.tsx +54 -54
- package/src/components/ui/data-display/Accordion.tsx +81 -81
- package/src/components/ui/data-display/Badge.tsx +47 -47
- package/src/components/ui/data-display/Card.tsx +93 -93
- package/src/components/ui/data-display/CardBrandIcons.tsx +336 -336
- package/src/components/ui/data-display/CardItem.tsx +75 -75
- package/src/components/ui/data-display/Pagination.tsx +126 -126
- package/src/components/ui/data-display/PaymentInfoCard.tsx +192 -192
- package/src/components/ui/data-display/ScrollArea.tsx +59 -59
- package/src/components/ui/data-display/Separator.tsx +29 -29
- package/src/components/ui/data-display/Table.tsx +117 -117
- package/src/components/ui/data-display/Tabs.tsx +67 -67
- package/src/components/ui/feedback/CircularProgress.tsx +75 -75
- package/src/components/ui/feedback/DefaultCircularProgress.tsx +65 -65
- package/src/components/ui/feedback/LoadingOverlay.tsx +31 -31
- package/src/components/ui/feedback/Progress.tsx +40 -40
- package/src/components/ui/feedback/Skeleton.tsx +5 -5
- package/src/components/ui/feedback/Toast.tsx +104 -104
- package/src/components/ui/form/Calendar.tsx +228 -228
- package/src/components/ui/form/Checkbox.tsx +31 -31
- package/src/components/ui/form/ComboboxField.tsx +154 -154
- package/src/components/ui/form/DatePicker.tsx +97 -98
- package/src/components/ui/form/DateRangePicker.tsx +108 -108
- package/src/components/ui/form/FormField.tsx +133 -133
- package/src/components/ui/form/Input.tsx +20 -20
- package/src/components/ui/form/InputOtp.tsx +80 -80
- package/src/components/ui/form/PhoneInput.tsx +208 -208
- package/src/components/ui/form/RadioGroup.tsx +45 -45
- package/src/components/ui/form/Select.tsx +200 -200
- package/src/components/ui/form/Switch.tsx +32 -32
- package/src/components/ui/form/Textarea.tsx +19 -19
- package/src/components/ui/overlay/Command.tsx +185 -185
- package/src/components/ui/overlay/Dialog.tsx +153 -153
- package/src/components/ui/overlay/Popover.tsx +49 -49
- package/src/components/ui/overlay/Sheet.tsx +170 -170
- package/src/components/ui/overlay/Tooltip.tsx +62 -62
- package/src/components/widgets/ImageUpload/ImageCropModal.tsx +254 -254
- package/src/components/widgets/ImageUpload/ImageTooSmallModal.tsx +61 -61
- package/src/components/widgets/ImageUpload/ImageUpload.tsx +126 -126
- package/src/components/widgets/ImageUpload/index.ts +3 -3
- package/src/components/widgets/notifications/NotificationCard.tsx +73 -73
- package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
- package/src/hooks/useAuthQueryKey.ts +32 -32
- package/src/index.ts +507 -506
- package/src/infra/utils/array.ts +54 -54
- package/src/infra/utils/date.ts +18 -18
- package/src/middleware.ts +4 -4
- package/src/modules/accounts/actions/account-management.action.ts +107 -107
- package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
- package/src/modules/accounts/actions/get-account-token.action.ts +8 -8
- package/src/modules/accounts/actions/list-currencies.action.ts +8 -8
- package/src/modules/accounts/actions/list-timezones.action.ts +8 -8
- package/src/modules/accounts/hooks/current-account.hook.tsx +26 -26
- package/src/modules/accounts/hooks/use-account-token.hook.tsx +14 -14
- package/src/modules/accounts/hooks/useAccountManagement.ts +94 -94
- package/src/modules/accounts/hooks/useCurrencies.ts +18 -18
- package/src/modules/accounts/hooks/useTimezones.ts +18 -18
- package/src/modules/accounts/hooks/useViaCep.ts +25 -25
- package/src/modules/accounts/services/account-token.service.ts +52 -52
- package/src/modules/accounts/services/account.service.ts +239 -239
- package/src/modules/accounts/types.ts +225 -225
- package/src/modules/auth/actions/validate-session.action.ts +56 -56
- package/src/modules/auth/hooks/login.hook.tsx +13 -13
- package/src/modules/auth/hooks/logout.hook.tsx +11 -11
- package/src/modules/auth/hooks/register.hook.tsx +11 -11
- package/src/modules/auth/hooks/useManagementPermissions.ts +45 -45
- package/src/modules/auth/hooks/useUserQuery.ts +75 -75
- package/src/modules/auth/types/management-permission.type.ts +7 -7
- package/src/modules/auth/utils/assert-management-permission.ts +46 -46
- package/src/modules/auth/utils/assert-management-subscription.ts +35 -35
- package/src/modules/auth/utils/assert-paid-subscription.ts +43 -43
- package/src/modules/auth/utils/assert-subscription-addon.ts +42 -42
- package/src/modules/auth/utils/build-wl-override.ts +43 -43
- package/src/modules/cards/actions/create-card.action.ts +9 -9
- package/src/modules/cards/actions/delete-card.action.ts +8 -8
- package/src/modules/cards/actions/find-card-by-id.action.ts +8 -8
- package/src/modules/cards/actions/list-cards.action.ts +8 -8
- package/src/modules/cards/actions/set-default-card.action.ts +8 -8
- package/src/modules/cards/hooks/card-by-id.hook.ts +21 -21
- package/src/modules/cards/hooks/cards.hook.ts +23 -23
- package/src/modules/cards/hooks/create-card.hook.ts +30 -30
- package/src/modules/cards/hooks/delete-card.hook.ts +54 -54
- package/src/modules/cards/hooks/set-default-card.hook.ts +55 -55
- package/src/modules/cards/services/cards.service.ts +108 -108
- package/src/modules/cards/types.ts +42 -42
- package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
- package/src/modules/ia-credits/hooks/ia-credits.hook.ts +99 -99
- package/src/modules/images/actions/process-image.action.ts +40 -40
- package/src/modules/images/constants/image.constants.ts +11 -11
- package/src/modules/images/hooks/use-image-upload.hook.ts +172 -172
- package/src/modules/images/services/image-processing.service.ts +75 -75
- package/src/modules/images/types/image.type.ts +54 -54
- package/src/modules/images/utils/base64.ts +26 -26
- package/src/modules/images/utils/compress-image.ts +20 -20
- package/src/modules/images/utils/crop-image.ts +51 -51
- package/src/modules/images/utils/validate-image.ts +71 -71
- package/src/modules/plans/actions/find-plan-by-id.action.ts +8 -8
- package/src/modules/plans/actions/list-plans.action.ts +17 -17
- package/src/modules/plans/hooks/list-plans.hook.ts +24 -24
- package/src/modules/plans/hooks/use-has-plan-addon.hook.ts +14 -14
- package/src/modules/plans/hooks/use-plan-by-id.hook.ts +38 -38
- package/src/modules/plans/services/plans.service.ts +133 -133
- package/src/modules/plans/types/plan.type.ts +67 -67
- package/src/modules/plans/utils/map-api-plan-to-ui.ts +98 -98
- package/src/modules/projects/actions/add-project-user.action.ts +9 -9
- package/src/modules/projects/actions/create-project.action.ts +9 -9
- package/src/modules/projects/actions/delete-project.action.ts +8 -8
- package/src/modules/projects/actions/find-project.action.ts +8 -8
- package/src/modules/projects/actions/list-all-account-users.action.ts +9 -9
- package/src/modules/projects/actions/list-available-users.action.ts +9 -9
- package/src/modules/projects/actions/list-project-users.action.ts +9 -9
- package/src/modules/projects/actions/list-projects.action.ts +16 -16
- package/src/modules/projects/actions/remove-project-user.action.ts +9 -9
- package/src/modules/projects/actions/update-project.action.ts +9 -9
- package/src/modules/projects/hooks/add-project-user.hook.ts +72 -72
- package/src/modules/projects/hooks/create-project.hook.ts +88 -88
- package/src/modules/projects/hooks/delete-project.hook.ts +58 -58
- package/src/modules/projects/hooks/find-project.hook.ts +18 -18
- package/src/modules/projects/hooks/list-all-account-users.hook.ts +39 -39
- package/src/modules/projects/hooks/list-available-users.hook.ts +38 -38
- package/src/modules/projects/hooks/list-infinite-projects.hook.ts +43 -43
- package/src/modules/projects/hooks/list-project-users.hook.ts +38 -38
- package/src/modules/projects/hooks/list-projects.hook.ts +23 -23
- package/src/modules/projects/hooks/remove-project-user.hook.ts +72 -72
- package/src/modules/projects/hooks/update-project.hook.ts +86 -86
- package/src/modules/projects/services/projects.service.ts +144 -144
- package/src/modules/subscriptions/actions/calculate-subscription.action.ts +9 -9
- package/src/modules/subscriptions/actions/list-subscriptions.action.ts +9 -9
- package/src/modules/subscriptions/actions/update-subscription-plan.action.ts +14 -14
- package/src/modules/subscriptions/constants/query-keys.constants.ts +3 -3
- package/src/modules/subscriptions/hooks/calculate-subscription.hook.ts +13 -13
- package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +18 -18
- package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +19 -19
- package/src/modules/subscriptions/hooks/update-subscription-plan.hook.ts +28 -28
- package/src/modules/subscriptions/hooks/use-cancelled-subscription-guard.ts +39 -39
- package/src/modules/subscriptions/types/billing-period.type.ts +1 -1
- package/src/modules/subscriptions/types/calculate-subscription.type.ts +113 -113
- package/src/modules/subscriptions/utils/build-plan-extras.ts +56 -56
- package/src/modules/subscriptions/utils/has-subscription-expired.ts +8 -8
- package/src/modules/subscriptions/utils/periodicity.ts +62 -62
- package/src/modules/subscriptions/utils/resolve-plan-extras-prices.ts +23 -23
- package/src/modules/users/action/find-user-by-id.action.ts +8 -8
- package/src/modules/users/action/list-messages.action.ts +26 -26
- package/src/modules/users/action/mark-all-messages-as-read.action.ts +8 -8
- package/src/modules/users/action/mark-message-as-read.action.ts +8 -8
- package/src/modules/users/hooks/messages.hook.ts +67 -67
- package/src/modules/users/services/messages.service.ts +49 -49
- package/src/modules/whitelabel/actions/find-whitelabel.action.ts +23 -23
- package/src/modules/whitelabel/actions/revalidate-whitelabel.action.ts +19 -19
- package/src/modules/whitelabel/schema.ts +84 -84
- package/src/modules/whitelabel/utils/normalize-hostname.ts +26 -26
- package/src/providers/auth.provider.tsx +162 -162
- package/src/providers/whitelabel.provider.tsx +59 -59
- package/src/store/useBuyCreditsModal.ts +21 -21
- package/src/store/useDesktopSidebarStore.ts +47 -47
- package/src/store/useMdSidebarStore.ts +34 -34
- package/src/store/usePaidPlanRequiredModal.ts +19 -19
- package/src/utils/constants/br-states.ts +29 -29
- package/src/utils/countries.ts +224 -224
- package/src/utils/format/currency.ts +15 -15
- package/src/utils/safeServerAction.ts +21 -21
- package/src/utils/withAction.ts +13 -13
package/src/infra/utils/array.ts
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Insere um item em um array já ordenado, mantendo a ordenação
|
|
3
|
-
* com base na função de comparação fornecida.
|
|
4
|
-
*/
|
|
5
|
-
export function insertSorted<T>(
|
|
6
|
-
data: T[],
|
|
7
|
-
newItem: T,
|
|
8
|
-
compareFn: (a: T, b: T) => number
|
|
9
|
-
): T[] {
|
|
10
|
-
const index = data.findIndex((item) => compareFn(newItem, item) < 0);
|
|
11
|
-
if (index === -1) return [...data, newItem];
|
|
12
|
-
return [...data.slice(0, index), newItem, ...data.slice(index)];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Cria uma função de comparação a partir de uma string de sort da API.
|
|
17
|
-
* Suporta múltiplos campos separados por vírgula e prefixo `-` para desc.
|
|
18
|
-
*
|
|
19
|
-
* Exemplos:
|
|
20
|
-
* - "title" → ascendente por title
|
|
21
|
-
* - "-title" → descendente por title
|
|
22
|
-
* - "title,-datetime_add" → ascendente por title, depois descendente por datetime_add
|
|
23
|
-
*/
|
|
24
|
-
export function buildCompareFn<T extends Record<string, unknown>>(
|
|
25
|
-
sort: string
|
|
26
|
-
): (a: T, b: T) => number {
|
|
27
|
-
const fields = sort.split(',').map((f) => f.trim()).filter(Boolean);
|
|
28
|
-
|
|
29
|
-
const parsedFields = fields.map((field) => {
|
|
30
|
-
const desc = field.startsWith('-');
|
|
31
|
-
const key = desc ? field.slice(1) : field;
|
|
32
|
-
return { key, desc };
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
return (a: T, b: T) => {
|
|
36
|
-
for (const { key, desc } of parsedFields) {
|
|
37
|
-
const aVal = a[key];
|
|
38
|
-
const bVal = b[key];
|
|
39
|
-
|
|
40
|
-
let result: number;
|
|
41
|
-
|
|
42
|
-
if (typeof aVal === 'string' && typeof bVal === 'string') {
|
|
43
|
-
result = aVal.localeCompare(bVal);
|
|
44
|
-
} else if (typeof aVal === 'number' && typeof bVal === 'number') {
|
|
45
|
-
result = aVal - bVal;
|
|
46
|
-
} else {
|
|
47
|
-
result = String(aVal ?? '').localeCompare(String(bVal ?? ''));
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (result !== 0) return desc ? -result : result;
|
|
51
|
-
}
|
|
52
|
-
return 0;
|
|
53
|
-
};
|
|
54
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Insere um item em um array já ordenado, mantendo a ordenação
|
|
3
|
+
* com base na função de comparação fornecida.
|
|
4
|
+
*/
|
|
5
|
+
export function insertSorted<T>(
|
|
6
|
+
data: T[],
|
|
7
|
+
newItem: T,
|
|
8
|
+
compareFn: (a: T, b: T) => number
|
|
9
|
+
): T[] {
|
|
10
|
+
const index = data.findIndex((item) => compareFn(newItem, item) < 0);
|
|
11
|
+
if (index === -1) return [...data, newItem];
|
|
12
|
+
return [...data.slice(0, index), newItem, ...data.slice(index)];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Cria uma função de comparação a partir de uma string de sort da API.
|
|
17
|
+
* Suporta múltiplos campos separados por vírgula e prefixo `-` para desc.
|
|
18
|
+
*
|
|
19
|
+
* Exemplos:
|
|
20
|
+
* - "title" → ascendente por title
|
|
21
|
+
* - "-title" → descendente por title
|
|
22
|
+
* - "title,-datetime_add" → ascendente por title, depois descendente por datetime_add
|
|
23
|
+
*/
|
|
24
|
+
export function buildCompareFn<T extends Record<string, unknown>>(
|
|
25
|
+
sort: string
|
|
26
|
+
): (a: T, b: T) => number {
|
|
27
|
+
const fields = sort.split(',').map((f) => f.trim()).filter(Boolean);
|
|
28
|
+
|
|
29
|
+
const parsedFields = fields.map((field) => {
|
|
30
|
+
const desc = field.startsWith('-');
|
|
31
|
+
const key = desc ? field.slice(1) : field;
|
|
32
|
+
return { key, desc };
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
return (a: T, b: T) => {
|
|
36
|
+
for (const { key, desc } of parsedFields) {
|
|
37
|
+
const aVal = a[key];
|
|
38
|
+
const bVal = b[key];
|
|
39
|
+
|
|
40
|
+
let result: number;
|
|
41
|
+
|
|
42
|
+
if (typeof aVal === 'string' && typeof bVal === 'string') {
|
|
43
|
+
result = aVal.localeCompare(bVal);
|
|
44
|
+
} else if (typeof aVal === 'number' && typeof bVal === 'number') {
|
|
45
|
+
result = aVal - bVal;
|
|
46
|
+
} else {
|
|
47
|
+
result = String(aVal ?? '').localeCompare(String(bVal ?? ''));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (result !== 0) return desc ? -result : result;
|
|
51
|
+
}
|
|
52
|
+
return 0;
|
|
53
|
+
};
|
|
54
|
+
}
|
package/src/infra/utils/date.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export function formatShortDate(date: Date | string | null | undefined): string {
|
|
2
|
-
if (!date) return '--';
|
|
3
|
-
const d = new Date(date);
|
|
4
|
-
const day = String(d.getDate()).padStart(2, '0');
|
|
5
|
-
const month = String(d.getMonth() + 1).padStart(2, '0');
|
|
6
|
-
return `${day}/${month}`;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function formatDateTime(date: Date | string | null | undefined): string | null {
|
|
10
|
-
if (!date) return null;
|
|
11
|
-
return new Date(date).toLocaleString('pt-BR', {
|
|
12
|
-
day: '2-digit',
|
|
13
|
-
month: '2-digit',
|
|
14
|
-
year: 'numeric',
|
|
15
|
-
hour: '2-digit',
|
|
16
|
-
minute: '2-digit',
|
|
17
|
-
});
|
|
18
|
-
}
|
|
1
|
+
export function formatShortDate(date: Date | string | null | undefined): string {
|
|
2
|
+
if (!date) return '--';
|
|
3
|
+
const d = new Date(date);
|
|
4
|
+
const day = String(d.getDate()).padStart(2, '0');
|
|
5
|
+
const month = String(d.getMonth() + 1).padStart(2, '0');
|
|
6
|
+
return `${day}/${month}`;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function formatDateTime(date: Date | string | null | undefined): string | null {
|
|
10
|
+
if (!date) return null;
|
|
11
|
+
return new Date(date).toLocaleString('pt-BR', {
|
|
12
|
+
day: '2-digit',
|
|
13
|
+
month: '2-digit',
|
|
14
|
+
year: 'numeric',
|
|
15
|
+
hour: '2-digit',
|
|
16
|
+
minute: '2-digit',
|
|
17
|
+
});
|
|
18
|
+
}
|
package/src/middleware.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { createAuthMiddleware } from './middlewares/create-auth-middleware';
|
|
2
|
-
export { createMiddlewareChain } from './middlewares/chain';
|
|
3
|
-
export type { MiddlewareConfig, MiddlewareFunction, MiddlewareResult } from './middlewares/types';
|
|
4
|
-
export { continueChain, stopChain } from './middlewares/types';
|
|
1
|
+
export { createAuthMiddleware } from './middlewares/create-auth-middleware';
|
|
2
|
+
export { createMiddlewareChain } from './middlewares/chain';
|
|
3
|
+
export type { MiddlewareConfig, MiddlewareFunction, MiddlewareResult } from './middlewares/types';
|
|
4
|
+
export { continueChain, stopChain } from './middlewares/types';
|
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
'use server';
|
|
2
|
-
|
|
3
|
-
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
-
import { accountService } from '../services/account.service';
|
|
5
|
-
import type {
|
|
6
|
-
AccountUsersPaginationParams,
|
|
7
|
-
ChangePasswordRequest,
|
|
8
|
-
CreateAccountUserRequest,
|
|
9
|
-
UpdateAccountRequest,
|
|
10
|
-
UpdateAccountUserRequest,
|
|
11
|
-
} from '../types';
|
|
12
|
-
import { twoFactorService } from '../services/two-factor.service';
|
|
13
|
-
import { findUserById } from '../../users/action/find-user-by-id.action';
|
|
14
|
-
import { UserProfile } from '../../users/schema';
|
|
15
|
-
import { ApiError } from '../../../infra/api/types';
|
|
16
|
-
|
|
17
|
-
export async function listAccountUsersAction(params?: AccountUsersPaginationParams) {
|
|
18
|
-
return safeServerAction(async () => {
|
|
19
|
-
const { users, total } = await accountService.listAccountUsers(params);
|
|
20
|
-
return { data: users, total };
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export async function updateUserAction(user: UpdateAccountUserRequest) {
|
|
25
|
-
return safeServerAction(() => accountService.updateAccountUser(user));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export async function updateAccountUserByIdAction(
|
|
29
|
-
userId: number,
|
|
30
|
-
user: UpdateAccountUserRequest
|
|
31
|
-
) {
|
|
32
|
-
return safeServerAction(() => accountService.updateAccountUserById(userId, user));
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export async function updateAccountAction(data: UpdateAccountRequest) {
|
|
36
|
-
return safeServerAction(async () => {
|
|
37
|
-
if (data.name !== undefined) {
|
|
38
|
-
const userResult = await findUserById();
|
|
39
|
-
if (!userResult.success || userResult.data?.profile !== UserProfile.owner) {
|
|
40
|
-
throw new ApiError(
|
|
41
|
-
'Apenas o proprietário da conta pode alterar o nome da empresa',
|
|
42
|
-
'FORBIDDEN',
|
|
43
|
-
403
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return accountService.updateAccount(data);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export async function deleteAccountUserAction(userId: number) {
|
|
53
|
-
return safeServerAction(() => accountService.deleteAccountUser(userId));
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export async function deleteAccountAction() {
|
|
57
|
-
return safeServerAction(() => accountService.deleteAccount());
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export async function createAccountUserAction(user: CreateAccountUserRequest) {
|
|
61
|
-
return safeServerAction(() => accountService.createAccountUser(user));
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export async function changePasswordAction(data: ChangePasswordRequest) {
|
|
65
|
-
return safeServerAction(() => accountService.changePassword(data));
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export async function requestEmailChangeAction(newEmail: string) {
|
|
69
|
-
return safeServerAction(() => accountService.requestContactReset('email', newEmail));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export async function confirmEmailChangeAction(token: string, newEmail: string) {
|
|
73
|
-
return safeServerAction(() => accountService.confirmContactReset('email', token, newEmail));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export async function requestPhoneChangeAction(newPhone: string, ddi?: string) {
|
|
77
|
-
return safeServerAction(() => accountService.requestContactReset('phone', newPhone, ddi));
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export async function confirmPhoneChangeAction(token: string, newPhone: string, ddi?: string) {
|
|
81
|
-
return safeServerAction(() => accountService.confirmContactReset('phone', token, newPhone, ddi));
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export async function generateTwoFactorAction() {
|
|
85
|
-
return safeServerAction(async () => {
|
|
86
|
-
const result = await twoFactorService.generate();
|
|
87
|
-
return {
|
|
88
|
-
qrcode: result.data.qrcode,
|
|
89
|
-
backupCodes: result.data.backup_codes,
|
|
90
|
-
};
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export async function confirmTwoFactorAction(code: string) {
|
|
95
|
-
return safeServerAction(async () => {
|
|
96
|
-
await twoFactorService.confirm(code);
|
|
97
|
-
await accountService.updateAccountUser({ two_factor_authentication: true });
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export async function disableTwoFactorAction(code: string) {
|
|
102
|
-
return safeServerAction(async () => {
|
|
103
|
-
await twoFactorService.verify(code);
|
|
104
|
-
await twoFactorService.disable();
|
|
105
|
-
await accountService.updateAccountUser({ two_factor_authentication: false });
|
|
106
|
-
});
|
|
107
|
-
}
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
+
import { accountService } from '../services/account.service';
|
|
5
|
+
import type {
|
|
6
|
+
AccountUsersPaginationParams,
|
|
7
|
+
ChangePasswordRequest,
|
|
8
|
+
CreateAccountUserRequest,
|
|
9
|
+
UpdateAccountRequest,
|
|
10
|
+
UpdateAccountUserRequest,
|
|
11
|
+
} from '../types';
|
|
12
|
+
import { twoFactorService } from '../services/two-factor.service';
|
|
13
|
+
import { findUserById } from '../../users/action/find-user-by-id.action';
|
|
14
|
+
import { UserProfile } from '../../users/schema';
|
|
15
|
+
import { ApiError } from '../../../infra/api/types';
|
|
16
|
+
|
|
17
|
+
export async function listAccountUsersAction(params?: AccountUsersPaginationParams) {
|
|
18
|
+
return safeServerAction(async () => {
|
|
19
|
+
const { users, total } = await accountService.listAccountUsers(params);
|
|
20
|
+
return { data: users, total };
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export async function updateUserAction(user: UpdateAccountUserRequest) {
|
|
25
|
+
return safeServerAction(() => accountService.updateAccountUser(user));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function updateAccountUserByIdAction(
|
|
29
|
+
userId: number,
|
|
30
|
+
user: UpdateAccountUserRequest
|
|
31
|
+
) {
|
|
32
|
+
return safeServerAction(() => accountService.updateAccountUserById(userId, user));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export async function updateAccountAction(data: UpdateAccountRequest) {
|
|
36
|
+
return safeServerAction(async () => {
|
|
37
|
+
if (data.name !== undefined) {
|
|
38
|
+
const userResult = await findUserById();
|
|
39
|
+
if (!userResult.success || userResult.data?.profile !== UserProfile.owner) {
|
|
40
|
+
throw new ApiError(
|
|
41
|
+
'Apenas o proprietário da conta pode alterar o nome da empresa',
|
|
42
|
+
'FORBIDDEN',
|
|
43
|
+
403
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return accountService.updateAccount(data);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export async function deleteAccountUserAction(userId: number) {
|
|
53
|
+
return safeServerAction(() => accountService.deleteAccountUser(userId));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export async function deleteAccountAction() {
|
|
57
|
+
return safeServerAction(() => accountService.deleteAccount());
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export async function createAccountUserAction(user: CreateAccountUserRequest) {
|
|
61
|
+
return safeServerAction(() => accountService.createAccountUser(user));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export async function changePasswordAction(data: ChangePasswordRequest) {
|
|
65
|
+
return safeServerAction(() => accountService.changePassword(data));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export async function requestEmailChangeAction(newEmail: string) {
|
|
69
|
+
return safeServerAction(() => accountService.requestContactReset('email', newEmail));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export async function confirmEmailChangeAction(token: string, newEmail: string) {
|
|
73
|
+
return safeServerAction(() => accountService.confirmContactReset('email', token, newEmail));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export async function requestPhoneChangeAction(newPhone: string, ddi?: string) {
|
|
77
|
+
return safeServerAction(() => accountService.requestContactReset('phone', newPhone, ddi));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export async function confirmPhoneChangeAction(token: string, newPhone: string, ddi?: string) {
|
|
81
|
+
return safeServerAction(() => accountService.confirmContactReset('phone', token, newPhone, ddi));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export async function generateTwoFactorAction() {
|
|
85
|
+
return safeServerAction(async () => {
|
|
86
|
+
const result = await twoFactorService.generate();
|
|
87
|
+
return {
|
|
88
|
+
qrcode: result.data.qrcode,
|
|
89
|
+
backupCodes: result.data.backup_codes,
|
|
90
|
+
};
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export async function confirmTwoFactorAction(code: string) {
|
|
95
|
+
return safeServerAction(async () => {
|
|
96
|
+
await twoFactorService.confirm(code);
|
|
97
|
+
await accountService.updateAccountUser({ two_factor_authentication: true });
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export async function disableTwoFactorAction(code: string) {
|
|
102
|
+
return safeServerAction(async () => {
|
|
103
|
+
await twoFactorService.verify(code);
|
|
104
|
+
await twoFactorService.disable();
|
|
105
|
+
await accountService.updateAccountUser({ two_factor_authentication: false });
|
|
106
|
+
});
|
|
107
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
'use server';
|
|
2
|
-
|
|
3
|
-
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
-
import { accountService } from '../services/account.service';
|
|
5
|
-
import type { Account } from '../types';
|
|
6
|
-
|
|
7
|
-
export async function findCurrentAccount() {
|
|
8
|
-
return safeServerAction<Account>(() => accountService.findCurrentAccount());
|
|
9
|
-
}
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
+
import { accountService } from '../services/account.service';
|
|
5
|
+
import type { Account } from '../types';
|
|
6
|
+
|
|
7
|
+
export async function findCurrentAccount() {
|
|
8
|
+
return safeServerAction<Account>(() => accountService.findCurrentAccount());
|
|
9
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
'use server';
|
|
2
|
-
|
|
3
|
-
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
-
import { accountTokenService } from '../services/account-token.service';
|
|
5
|
-
|
|
6
|
-
export async function getAccountTokenAction() {
|
|
7
|
-
return safeServerAction(() => accountTokenService.getOrCreateToken());
|
|
8
|
-
}
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
+
import { accountTokenService } from '../services/account-token.service';
|
|
5
|
+
|
|
6
|
+
export async function getAccountTokenAction() {
|
|
7
|
+
return safeServerAction(() => accountTokenService.getOrCreateToken());
|
|
8
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
'use server';
|
|
2
|
-
|
|
3
|
-
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
-
import { currencyService } from '../services/currency.service';
|
|
5
|
-
|
|
6
|
-
export async function listCurrenciesAction() {
|
|
7
|
-
return safeServerAction(() => currencyService.fetchOptions());
|
|
8
|
-
}
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
+
import { currencyService } from '../services/currency.service';
|
|
5
|
+
|
|
6
|
+
export async function listCurrenciesAction() {
|
|
7
|
+
return safeServerAction(() => currencyService.fetchOptions());
|
|
8
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
'use server';
|
|
2
|
-
|
|
3
|
-
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
-
import { timezoneService } from '../services/timezone.service';
|
|
5
|
-
|
|
6
|
-
export async function listTimezonesAction() {
|
|
7
|
-
return safeServerAction(() => timezoneService.fetchOptions());
|
|
8
|
-
}
|
|
1
|
+
'use server';
|
|
2
|
+
|
|
3
|
+
import { safeServerAction } from '../../../utils/safeServerAction';
|
|
4
|
+
import { timezoneService } from '../services/timezone.service';
|
|
5
|
+
|
|
6
|
+
export async function listTimezonesAction() {
|
|
7
|
+
return safeServerAction(() => timezoneService.fetchOptions());
|
|
8
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
4
|
-
import { findCurrentAccount } from '../actions/find-current-account.action';
|
|
5
|
-
import { withAction } from '../../../utils/withAction';
|
|
6
|
-
import { useWlQueryKey } from '../../../hooks/useAuthQueryKey';
|
|
7
|
-
|
|
8
|
-
export const ACCOUNT_QUERY_KEY = ['account'] as const;
|
|
9
|
-
|
|
10
|
-
export function useCurrentAccount() {
|
|
11
|
-
const queryKey = useWlQueryKey([...ACCOUNT_QUERY_KEY]);
|
|
12
|
-
|
|
13
|
-
return useQuery({
|
|
14
|
-
queryKey,
|
|
15
|
-
queryFn: withAction(findCurrentAccount),
|
|
16
|
-
staleTime: 0,
|
|
17
|
-
gcTime: 10 * 60 * 1000,
|
|
18
|
-
retry: false,
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function useInvalidateAccount() {
|
|
23
|
-
const queryClient = useQueryClient();
|
|
24
|
-
const accountKey = useWlQueryKey([...ACCOUNT_QUERY_KEY]);
|
|
25
|
-
return () => queryClient.invalidateQueries({ queryKey: accountKey });
|
|
26
|
-
}
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
4
|
+
import { findCurrentAccount } from '../actions/find-current-account.action';
|
|
5
|
+
import { withAction } from '../../../utils/withAction';
|
|
6
|
+
import { useWlQueryKey } from '../../../hooks/useAuthQueryKey';
|
|
7
|
+
|
|
8
|
+
export const ACCOUNT_QUERY_KEY = ['account'] as const;
|
|
9
|
+
|
|
10
|
+
export function useCurrentAccount() {
|
|
11
|
+
const queryKey = useWlQueryKey([...ACCOUNT_QUERY_KEY]);
|
|
12
|
+
|
|
13
|
+
return useQuery({
|
|
14
|
+
queryKey,
|
|
15
|
+
queryFn: withAction(findCurrentAccount),
|
|
16
|
+
staleTime: 0,
|
|
17
|
+
gcTime: 10 * 60 * 1000,
|
|
18
|
+
retry: false,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function useInvalidateAccount() {
|
|
23
|
+
const queryClient = useQueryClient();
|
|
24
|
+
const accountKey = useWlQueryKey([...ACCOUNT_QUERY_KEY]);
|
|
25
|
+
return () => queryClient.invalidateQueries({ queryKey: accountKey });
|
|
26
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { useQuery } from '@tanstack/react-query';
|
|
4
|
-
import { withAction } from '../../../utils/withAction';
|
|
5
|
-
import { getAccountTokenAction } from '../actions/get-account-token.action';
|
|
6
|
-
|
|
7
|
-
const ACCOUNT_TOKEN_QUERY_KEY = ['account-token'];
|
|
8
|
-
|
|
9
|
-
export function useAccountToken() {
|
|
10
|
-
return useQuery({
|
|
11
|
-
queryKey: ACCOUNT_TOKEN_QUERY_KEY,
|
|
12
|
-
queryFn: withAction(getAccountTokenAction),
|
|
13
|
-
});
|
|
14
|
-
}
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { withAction } from '../../../utils/withAction';
|
|
5
|
+
import { getAccountTokenAction } from '../actions/get-account-token.action';
|
|
6
|
+
|
|
7
|
+
const ACCOUNT_TOKEN_QUERY_KEY = ['account-token'];
|
|
8
|
+
|
|
9
|
+
export function useAccountToken() {
|
|
10
|
+
return useQuery({
|
|
11
|
+
queryKey: ACCOUNT_TOKEN_QUERY_KEY,
|
|
12
|
+
queryFn: withAction(getAccountTokenAction),
|
|
13
|
+
});
|
|
14
|
+
}
|