@greatapps/common 1.1.263 → 1.1.265
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/embeds/CrispEmbed.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/UsersSelectorPopover.mjs.map +1 -1
- package/dist/components/modals/BuyCreditsModal.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/ProjectSelector.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.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/hooks/copy-to-clipboard.hook.mjs.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/infra/api/client.mjs +50 -23
- package/dist/infra/api/client.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/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/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/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/services/auth.service.mjs +0 -1
- package/dist/modules/auth/services/auth.service.mjs.map +1 -1
- package/dist/modules/cards/actions/list-cards.action.mjs.map +1 -1
- package/dist/modules/cards/hooks/cards.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/plans/actions/find-plan-by-id.action.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/projects/actions/add-project-user.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/remove-project-user.action.mjs.map +1 -1
- package/dist/modules/projects/hooks/add-project-user.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-project-users.hook.mjs.map +1 -1
- package/dist/modules/projects/hooks/remove-project-user.hook.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/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/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/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/services/whitelabel.service.mjs +5 -0
- package/dist/modules/whitelabel/services/whitelabel.service.mjs.map +1 -1
- package/dist/providers/whitelabel.provider.mjs.map +1 -1
- package/dist/store/useBuyCreditsModal.mjs.map +1 -1
- package/dist/utils/countries.mjs.map +1 -1
- package/dist/utils/safeServerAction.mjs.map +1 -1
- package/dist/utils/withAction.mjs.map +1 -1
- package/package.json +89 -89
- package/src/components/account/ConfigurationsMyAccountModal.tsx +150 -150
- 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 +223 -223
- package/src/components/account/hooks/useChangePhoneForm.tsx +81 -81
- package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
- package/src/components/account/sections/ChangeEmailModal.tsx +225 -225
- package/src/components/account/sections/ChangePasswordSection.tsx +64 -64
- package/src/components/account/sections/ChangePhoneModal.tsx +231 -231
- package/src/components/account/sections/MyProfileSection.tsx +327 -327
- package/src/components/account/sections/PreferencesSection.tsx +273 -273
- package/src/components/account/sections/SecuritySection.tsx +160 -160
- package/src/components/embeds/CrispEmbed.tsx +101 -101
- package/src/components/embeds/FrillEmbed.tsx +119 -119
- package/src/components/layouts/AppMobileNavBar.tsx +118 -118
- package/src/components/layouts/AppNavBar.tsx +51 -51
- package/src/components/layouts/MdSideBarNavigation.tsx +56 -56
- package/src/components/layouts/NavBar.tsx +120 -120
- package/src/components/layouts/NotificationsPopover.tsx +115 -115
- package/src/components/layouts/ProfilePopover.tsx +164 -164
- package/src/components/layouts/UsersSelectorPopover.tsx +238 -238
- package/src/components/modals/BuyCreditsModal.tsx +301 -301
- package/src/components/navigation/CancelledSubscriptionBanner.tsx +69 -69
- package/src/components/navigation/NavItemsContext.ts +20 -20
- package/src/components/navigation/ProjectSelectorPopover.tsx +157 -157
- package/src/components/navigation/shells/TabsMobileShell.tsx +72 -72
- package/src/components/navigation/subcomponents/ProjectSelector.tsx +156 -156
- package/src/components/pages/notifications/Notifications.tsx +160 -160
- package/src/components/ui/buttons/Button.tsx +57 -57
- 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 +186 -186
- 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 +61 -61
- 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 +101 -101
- 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 -97
- package/src/components/ui/form/DateRangePicker.tsx +108 -108
- package/src/components/ui/form/FormField.tsx +131 -131
- 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 +205 -205
- 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 +151 -151
- package/src/components/ui/overlay/Popover.tsx +49 -49
- package/src/components/ui/overlay/Sheet.tsx +166 -166
- package/src/components/ui/overlay/Tooltip.tsx +62 -62
- package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
- package/src/index.ts +376 -376
- package/src/infra/api/client.ts +116 -53
- package/src/middleware.ts +4 -4
- package/src/modules/accounts/actions/account-management.action.ts +91 -91
- package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
- 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 +22 -22
- package/src/modules/accounts/hooks/useAccountManagement.ts +85 -85
- package/src/modules/accounts/hooks/useCurrencies.ts +15 -15
- package/src/modules/accounts/hooks/useTimezones.ts +15 -15
- package/src/modules/accounts/services/account.service.ts +236 -236
- package/src/modules/accounts/types.ts +214 -214
- 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/services/auth.service.ts +0 -2
- package/src/modules/cards/actions/list-cards.action.ts +8 -8
- package/src/modules/cards/hooks/cards.hook.ts +14 -14
- package/src/modules/cards/services/cards.service.ts +32 -32
- package/src/modules/cards/types.ts +32 -32
- package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
- package/src/modules/plans/actions/find-plan-by-id.action.ts +8 -8
- package/src/modules/plans/hooks/use-has-plan-addon.hook.ts +17 -17
- package/src/modules/plans/hooks/use-plan-by-id.hook.ts +13 -13
- package/src/modules/plans/services/plans.service.ts +36 -36
- package/src/modules/plans/types/plan.type.ts +21 -21
- package/src/modules/projects/actions/add-project-user.action.ts +9 -9
- 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/remove-project-user.action.ts +9 -9
- package/src/modules/projects/hooks/add-project-user.hook.ts +69 -69
- package/src/modules/projects/hooks/list-all-account-users.hook.ts +34 -34
- package/src/modules/projects/hooks/list-available-users.hook.ts +33 -33
- package/src/modules/projects/hooks/list-project-users.hook.ts +33 -33
- package/src/modules/projects/hooks/remove-project-user.hook.ts +69 -69
- 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 +26 -26
- package/src/modules/subscriptions/constants/query-keys.constants.ts +1 -1
- package/src/modules/subscriptions/hooks/calculate-subscription.hook.ts +13 -13
- package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +19 -19
- package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +16 -16
- package/src/modules/subscriptions/hooks/update-subscription-plan.hook.ts +25 -25
- package/src/modules/subscriptions/types/billing-period.type.ts +1 -1
- package/src/modules/subscriptions/types/calculate-subscription.type.ts +75 -75
- package/src/modules/subscriptions/utils/build-plan-extras.ts +56 -56
- package/src/modules/subscriptions/utils/periodicity.ts +52 -52
- 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 +12 -12
- 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 +60 -60
- 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 +83 -83
- package/src/modules/whitelabel/services/whitelabel.service.ts +5 -5
- package/src/modules/whitelabel/styles-schema.ts +37 -37
- package/src/providers/whitelabel.provider.tsx +54 -54
- package/src/store/useBuyCreditsModal.ts +25 -25
- package/src/utils/countries.ts +224 -224
- package/src/utils/safeServerAction.ts +21 -21
- package/src/utils/withAction.ts +13 -13
- package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs +0 -15
- package/dist/modules/whitelabel/actions/find-whitelabel-styles.action.mjs.map +0 -1
- package/dist/modules/whitelabel/actions/revalidate-whitelabel-styles.action.mjs +0 -12
- package/dist/modules/whitelabel/actions/revalidate-whitelabel-styles.action.mjs.map +0 -1
- package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs +0 -102
- package/dist/modules/whitelabel/services/whitelabel-styles.service.mjs.map +0 -1
- package/src/modules/whitelabel/actions/find-whitelabel-styles.action.ts +0 -14
- package/src/modules/whitelabel/actions/revalidate-whitelabel-styles.action.ts +0 -10
- package/src/modules/whitelabel/services/whitelabel-styles.service.ts +0 -129
package/src/infra/api/client.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ApiError } from
|
|
2
|
-
import { findWhitelabel } from
|
|
1
|
+
import { ApiError } from "./types";
|
|
2
|
+
import { findWhitelabel } from "../../modules/whitelabel/actions/find-whitelabel.action";
|
|
3
3
|
|
|
4
4
|
export interface ApiClientOptions {
|
|
5
5
|
/**
|
|
@@ -7,66 +7,88 @@ export interface ApiClientOptions {
|
|
|
7
7
|
* Padrão false: `{base}/v1/{locale}/{wlId}{endpoint}`.
|
|
8
8
|
*/
|
|
9
9
|
omitApiVersion?: boolean;
|
|
10
|
+
|
|
11
|
+
/** Habilita logs detalhados das requisições (útil para desenvolvimento) */
|
|
12
|
+
emitLogs?: boolean;
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
export interface RequestConfig extends RequestInit {
|
|
13
16
|
timeout?: number;
|
|
14
17
|
/** Padrão `json`. Use `text` quando a API devolve corpo não-JSON. */
|
|
15
|
-
responseType?:
|
|
18
|
+
responseType?: "json" | "text";
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
class ApiClient {
|
|
19
22
|
private readonly baseUrl: string;
|
|
20
|
-
private readonly apiVersion =
|
|
21
|
-
private readonly apiLocale =
|
|
23
|
+
private readonly apiVersion = "v1";
|
|
24
|
+
private readonly apiLocale = "pt-br";
|
|
22
25
|
private readonly omitApiVersion: boolean;
|
|
26
|
+
private readonly emitLogs: boolean = false;
|
|
23
27
|
|
|
24
28
|
constructor(baseUrl: string, options?: ApiClientOptions) {
|
|
25
|
-
this.baseUrl = baseUrl.replace(/\/$/,
|
|
29
|
+
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
26
30
|
this.omitApiVersion = options?.omitApiVersion ?? false;
|
|
31
|
+
this.emitLogs = options?.emitLogs ?? false;
|
|
27
32
|
}
|
|
28
33
|
|
|
29
|
-
private async buildUrl(
|
|
34
|
+
private async buildUrl(
|
|
35
|
+
endpoint: string,
|
|
36
|
+
whiteLabelId: number,
|
|
37
|
+
): Promise<string> {
|
|
30
38
|
const wlPath = this.omitApiVersion
|
|
31
39
|
? `/${this.apiLocale}/${whiteLabelId}`
|
|
32
40
|
: `/${this.apiVersion}/${this.apiLocale}/${whiteLabelId}`;
|
|
33
|
-
const path = endpoint.startsWith(
|
|
41
|
+
const path = endpoint.startsWith("/") ? endpoint : `/${endpoint}`;
|
|
34
42
|
const url = `${this.baseUrl}${wlPath}${path}`;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
if (this.emitLogs) {
|
|
44
|
+
console.log("[ApiClient] buildUrl", {
|
|
45
|
+
baseURL: this.baseUrl,
|
|
46
|
+
whiteLabelId,
|
|
47
|
+
endpoint,
|
|
48
|
+
fullUrl: url,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
41
51
|
return url;
|
|
42
52
|
}
|
|
43
53
|
|
|
44
|
-
private async getDefaultHeaders(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
private async getDefaultHeaders(
|
|
55
|
+
token: string,
|
|
56
|
+
isFormData = false,
|
|
57
|
+
): Promise<HeadersInit> {
|
|
58
|
+
if (this.emitLogs) {
|
|
59
|
+
console.log("[ApiClient] getDefaultHeaders", {
|
|
60
|
+
token: token.substring(0, 20) + "...",
|
|
61
|
+
});
|
|
62
|
+
}
|
|
48
63
|
|
|
49
64
|
const headers: HeadersInit = {
|
|
50
65
|
authorization: token,
|
|
51
66
|
};
|
|
52
67
|
|
|
53
68
|
if (!isFormData) {
|
|
54
|
-
headers[
|
|
69
|
+
headers["Content-Type"] = "application/json";
|
|
55
70
|
}
|
|
56
71
|
|
|
57
72
|
return headers;
|
|
58
73
|
}
|
|
59
74
|
|
|
60
75
|
async request<T>(endpoint: string, config: RequestConfig = {}): Promise<T> {
|
|
61
|
-
|
|
76
|
+
if (this.emitLogs) {
|
|
77
|
+
console.log("[ApiClient] request called", {
|
|
78
|
+
endpoint,
|
|
79
|
+
method: config.method,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
62
82
|
|
|
63
|
-
const { timeout = 30000, responseType =
|
|
83
|
+
const { timeout = 30000, responseType = "json", ...fetchConfig } = config;
|
|
64
84
|
|
|
65
85
|
const controller = new AbortController();
|
|
66
86
|
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
67
87
|
|
|
68
88
|
try {
|
|
69
|
-
|
|
89
|
+
if (this.emitLogs) {
|
|
90
|
+
console.log("[ApiClient] Building URL and headers...");
|
|
91
|
+
}
|
|
70
92
|
|
|
71
93
|
const { id, token } = await findWhitelabel();
|
|
72
94
|
|
|
@@ -75,11 +97,12 @@ class ApiClient {
|
|
|
75
97
|
this.getDefaultHeaders(token, fetchConfig.body instanceof FormData),
|
|
76
98
|
]);
|
|
77
99
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
100
|
+
if (this.emitLogs)
|
|
101
|
+
console.log("[ApiClient] Fetching", {
|
|
102
|
+
url,
|
|
103
|
+
method: fetchConfig.method,
|
|
104
|
+
headers: defaultHeaders,
|
|
105
|
+
});
|
|
83
106
|
|
|
84
107
|
const response = await fetch(url, {
|
|
85
108
|
...fetchConfig,
|
|
@@ -90,87 +113,127 @@ class ApiClient {
|
|
|
90
113
|
signal: controller.signal,
|
|
91
114
|
});
|
|
92
115
|
|
|
93
|
-
|
|
116
|
+
if (this.emitLogs)
|
|
117
|
+
console.log("[ApiClient] Response received", {
|
|
118
|
+
status: response.status,
|
|
119
|
+
ok: response.ok,
|
|
120
|
+
});
|
|
94
121
|
|
|
95
122
|
if (!response.ok) {
|
|
96
123
|
const errBody = await response.text();
|
|
97
124
|
let message = `HTTP error ${response.status}`;
|
|
98
|
-
let code =
|
|
125
|
+
let code = "HTTP_ERROR";
|
|
99
126
|
try {
|
|
100
127
|
const errorData = JSON.parse(errBody) as Record<string, unknown>;
|
|
101
|
-
if (typeof errorData.message ===
|
|
102
|
-
|
|
128
|
+
if (typeof errorData.message === "string")
|
|
129
|
+
message = errorData.message;
|
|
130
|
+
if (typeof errorData.code === "string") code = errorData.code;
|
|
103
131
|
} catch {
|
|
104
132
|
if (errBody.trim()) message = errBody.trim();
|
|
105
133
|
}
|
|
106
|
-
console.error(
|
|
134
|
+
console.error("[ApiClient] Request failed", {
|
|
135
|
+
status: response.status,
|
|
136
|
+
message,
|
|
137
|
+
});
|
|
107
138
|
throw new ApiError(message, code, response.status);
|
|
108
139
|
}
|
|
109
140
|
|
|
110
|
-
if (responseType ===
|
|
141
|
+
if (responseType === "text") {
|
|
111
142
|
return (await response.text()) as T;
|
|
112
143
|
}
|
|
113
144
|
|
|
114
145
|
const data = (await response.json()) as T;
|
|
115
|
-
|
|
146
|
+
if (this.emitLogs)
|
|
147
|
+
console.log("[ApiClient] Request successful", { hasData: !!data });
|
|
116
148
|
return data;
|
|
117
149
|
} catch (error) {
|
|
118
|
-
console.error(
|
|
150
|
+
if (this.emitLogs) console.error("[ApiClient] Request error", { error });
|
|
119
151
|
|
|
120
152
|
if (error instanceof ApiError) {
|
|
121
153
|
throw error;
|
|
122
154
|
}
|
|
123
155
|
|
|
124
156
|
if (error instanceof Error) {
|
|
125
|
-
if (error.name ===
|
|
126
|
-
throw new ApiError(
|
|
157
|
+
if (error.name === "AbortError") {
|
|
158
|
+
throw new ApiError("Tempo de requisição excedido", "TIMEOUT", 408);
|
|
127
159
|
}
|
|
128
|
-
throw new ApiError(error.message,
|
|
160
|
+
throw new ApiError(error.message, "NETWORK_ERROR", 0);
|
|
129
161
|
}
|
|
130
162
|
|
|
131
|
-
throw new ApiError(
|
|
163
|
+
throw new ApiError("Erro desconhecido", "UNKNOWN_ERROR", 500);
|
|
132
164
|
} finally {
|
|
133
165
|
clearTimeout(timeoutId);
|
|
134
166
|
}
|
|
135
167
|
}
|
|
136
168
|
|
|
137
169
|
async get<T>(endpoint: string, config?: RequestConfig): Promise<T> {
|
|
138
|
-
return this.request<T>(endpoint, { ...config, method:
|
|
170
|
+
return this.request<T>(endpoint, { ...config, method: "GET" });
|
|
139
171
|
}
|
|
140
172
|
|
|
141
|
-
async post<T>(
|
|
173
|
+
async post<T>(
|
|
174
|
+
endpoint: string,
|
|
175
|
+
data?: unknown,
|
|
176
|
+
config?: RequestConfig,
|
|
177
|
+
): Promise<T> {
|
|
142
178
|
return this.request<T>(endpoint, {
|
|
143
179
|
...config,
|
|
144
|
-
method:
|
|
145
|
-
body:
|
|
180
|
+
method: "POST",
|
|
181
|
+
body:
|
|
182
|
+
data instanceof FormData
|
|
183
|
+
? data
|
|
184
|
+
: data
|
|
185
|
+
? JSON.stringify(data)
|
|
186
|
+
: undefined,
|
|
146
187
|
});
|
|
147
188
|
}
|
|
148
189
|
|
|
149
|
-
async put<T>(
|
|
190
|
+
async put<T>(
|
|
191
|
+
endpoint: string,
|
|
192
|
+
data?: unknown,
|
|
193
|
+
config?: RequestConfig,
|
|
194
|
+
): Promise<T> {
|
|
150
195
|
return this.request<T>(endpoint, {
|
|
151
196
|
...config,
|
|
152
|
-
method:
|
|
153
|
-
body:
|
|
197
|
+
method: "PUT",
|
|
198
|
+
body:
|
|
199
|
+
data instanceof FormData
|
|
200
|
+
? data
|
|
201
|
+
: data
|
|
202
|
+
? JSON.stringify(data)
|
|
203
|
+
: undefined,
|
|
154
204
|
});
|
|
155
205
|
}
|
|
156
206
|
|
|
157
|
-
async patch<T>(
|
|
207
|
+
async patch<T>(
|
|
208
|
+
endpoint: string,
|
|
209
|
+
data?: unknown,
|
|
210
|
+
config?: RequestConfig,
|
|
211
|
+
): Promise<T> {
|
|
158
212
|
return this.request<T>(endpoint, {
|
|
159
213
|
...config,
|
|
160
|
-
method:
|
|
161
|
-
body:
|
|
214
|
+
method: "PATCH",
|
|
215
|
+
body:
|
|
216
|
+
data instanceof FormData
|
|
217
|
+
? data
|
|
218
|
+
: data
|
|
219
|
+
? JSON.stringify(data)
|
|
220
|
+
: undefined,
|
|
162
221
|
});
|
|
163
222
|
}
|
|
164
223
|
|
|
165
224
|
async delete<T>(endpoint: string, config?: RequestConfig): Promise<T> {
|
|
166
|
-
return this.request<T>(endpoint, { ...config, method:
|
|
225
|
+
return this.request<T>(endpoint, { ...config, method: "DELETE" });
|
|
167
226
|
}
|
|
168
227
|
}
|
|
169
228
|
|
|
170
229
|
const api = {
|
|
171
|
-
apps: new ApiClient(
|
|
172
|
-
|
|
173
|
-
|
|
230
|
+
apps: new ApiClient(
|
|
231
|
+
process.env.GAPPS_R3_API_URL || "https://r3-api.greatapps.dev.br",
|
|
232
|
+
),
|
|
233
|
+
pages: new ApiClient(
|
|
234
|
+
process.env.GPAGES_R3_API_URL || "https://r3-api.greatpages.dev.br",
|
|
235
|
+
),
|
|
236
|
+
};
|
|
174
237
|
|
|
175
238
|
/** @deprecated use api.apps */
|
|
176
239
|
export const apiClient = api.apps;
|
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,91 +1,91 @@
|
|
|
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
|
-
|
|
14
|
-
export async function listAccountUsersAction(params?: AccountUsersPaginationParams) {
|
|
15
|
-
return safeServerAction(async () => {
|
|
16
|
-
const { users, total } = await accountService.listAccountUsers(params);
|
|
17
|
-
return { data: users, total };
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export async function updateUserAction(user: UpdateAccountUserRequest) {
|
|
22
|
-
return safeServerAction(() => accountService.updateAccountUser(user));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export async function updateAccountUserByIdAction(
|
|
26
|
-
userId: number,
|
|
27
|
-
user: UpdateAccountUserRequest
|
|
28
|
-
) {
|
|
29
|
-
return safeServerAction(() => accountService.updateAccountUserById(userId, user));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export async function updateAccountAction(data: UpdateAccountRequest) {
|
|
33
|
-
return safeServerAction(() => accountService.updateAccount(data));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export async function deleteAccountUserAction(userId: number) {
|
|
37
|
-
return safeServerAction(() => accountService.deleteAccountUser(userId));
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export async function deleteAccountAction() {
|
|
41
|
-
return safeServerAction(() => accountService.deleteAccount());
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export async function createAccountUserAction(user: CreateAccountUserRequest) {
|
|
45
|
-
return safeServerAction(() => accountService.createAccountUser(user));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export async function changePasswordAction(data: ChangePasswordRequest) {
|
|
49
|
-
return safeServerAction(() => accountService.changePassword(data));
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export async function requestEmailChangeAction(newEmail: string) {
|
|
53
|
-
return safeServerAction(() => accountService.requestContactReset('email', newEmail));
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export async function confirmEmailChangeAction(token: string, newEmail: string) {
|
|
57
|
-
return safeServerAction(() => accountService.confirmContactReset('email', token, newEmail));
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export async function requestPhoneChangeAction(newPhone: string, ddi?: string) {
|
|
61
|
-
return safeServerAction(() => accountService.requestContactReset('phone', newPhone, ddi));
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export async function confirmPhoneChangeAction(token: string, newPhone: string, ddi?: string) {
|
|
65
|
-
return safeServerAction(() => accountService.confirmContactReset('phone', token, newPhone, ddi));
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export async function generateTwoFactorAction() {
|
|
69
|
-
return safeServerAction(async () => {
|
|
70
|
-
const result = await twoFactorService.generate();
|
|
71
|
-
return {
|
|
72
|
-
qrcode: result.data.qrcode,
|
|
73
|
-
backupCodes: result.data.backup_codes,
|
|
74
|
-
};
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export async function confirmTwoFactorAction(code: string) {
|
|
79
|
-
return safeServerAction(async () => {
|
|
80
|
-
await twoFactorService.confirm(code);
|
|
81
|
-
await accountService.updateAccountUser({ two_factor_authentication: true });
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export async function disableTwoFactorAction(code: string) {
|
|
86
|
-
return safeServerAction(async () => {
|
|
87
|
-
await twoFactorService.verify(code);
|
|
88
|
-
await twoFactorService.disable();
|
|
89
|
-
await accountService.updateAccountUser({ two_factor_authentication: false });
|
|
90
|
-
});
|
|
91
|
-
}
|
|
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
|
+
|
|
14
|
+
export async function listAccountUsersAction(params?: AccountUsersPaginationParams) {
|
|
15
|
+
return safeServerAction(async () => {
|
|
16
|
+
const { users, total } = await accountService.listAccountUsers(params);
|
|
17
|
+
return { data: users, total };
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export async function updateUserAction(user: UpdateAccountUserRequest) {
|
|
22
|
+
return safeServerAction(() => accountService.updateAccountUser(user));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export async function updateAccountUserByIdAction(
|
|
26
|
+
userId: number,
|
|
27
|
+
user: UpdateAccountUserRequest
|
|
28
|
+
) {
|
|
29
|
+
return safeServerAction(() => accountService.updateAccountUserById(userId, user));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export async function updateAccountAction(data: UpdateAccountRequest) {
|
|
33
|
+
return safeServerAction(() => accountService.updateAccount(data));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export async function deleteAccountUserAction(userId: number) {
|
|
37
|
+
return safeServerAction(() => accountService.deleteAccountUser(userId));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export async function deleteAccountAction() {
|
|
41
|
+
return safeServerAction(() => accountService.deleteAccount());
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export async function createAccountUserAction(user: CreateAccountUserRequest) {
|
|
45
|
+
return safeServerAction(() => accountService.createAccountUser(user));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export async function changePasswordAction(data: ChangePasswordRequest) {
|
|
49
|
+
return safeServerAction(() => accountService.changePassword(data));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export async function requestEmailChangeAction(newEmail: string) {
|
|
53
|
+
return safeServerAction(() => accountService.requestContactReset('email', newEmail));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export async function confirmEmailChangeAction(token: string, newEmail: string) {
|
|
57
|
+
return safeServerAction(() => accountService.confirmContactReset('email', token, newEmail));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export async function requestPhoneChangeAction(newPhone: string, ddi?: string) {
|
|
61
|
+
return safeServerAction(() => accountService.requestContactReset('phone', newPhone, ddi));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export async function confirmPhoneChangeAction(token: string, newPhone: string, ddi?: string) {
|
|
65
|
+
return safeServerAction(() => accountService.confirmContactReset('phone', token, newPhone, ddi));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export async function generateTwoFactorAction() {
|
|
69
|
+
return safeServerAction(async () => {
|
|
70
|
+
const result = await twoFactorService.generate();
|
|
71
|
+
return {
|
|
72
|
+
qrcode: result.data.qrcode,
|
|
73
|
+
backupCodes: result.data.backup_codes,
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export async function confirmTwoFactorAction(code: string) {
|
|
79
|
+
return safeServerAction(async () => {
|
|
80
|
+
await twoFactorService.confirm(code);
|
|
81
|
+
await accountService.updateAccountUser({ two_factor_authentication: true });
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export async function disableTwoFactorAction(code: string) {
|
|
86
|
+
return safeServerAction(async () => {
|
|
87
|
+
await twoFactorService.verify(code);
|
|
88
|
+
await twoFactorService.disable();
|
|
89
|
+
await accountService.updateAccountUser({ two_factor_authentication: false });
|
|
90
|
+
});
|
|
91
|
+
}
|
|
@@ -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 { 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,22 +1,22 @@
|
|
|
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
|
-
|
|
7
|
-
export const ACCOUNT_QUERY_KEY = ['account'];
|
|
8
|
-
|
|
9
|
-
export function useCurrentAccount() {
|
|
10
|
-
return useQuery({
|
|
11
|
-
queryKey: ACCOUNT_QUERY_KEY,
|
|
12
|
-
queryFn: withAction(findCurrentAccount),
|
|
13
|
-
staleTime: 0,
|
|
14
|
-
gcTime: 10 * 60 * 1000,
|
|
15
|
-
retry: false,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function useInvalidateAccount() {
|
|
20
|
-
const queryClient = useQueryClient();
|
|
21
|
-
return () => queryClient.invalidateQueries({ queryKey: ACCOUNT_QUERY_KEY });
|
|
22
|
-
}
|
|
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
|
+
|
|
7
|
+
export const ACCOUNT_QUERY_KEY = ['account'];
|
|
8
|
+
|
|
9
|
+
export function useCurrentAccount() {
|
|
10
|
+
return useQuery({
|
|
11
|
+
queryKey: ACCOUNT_QUERY_KEY,
|
|
12
|
+
queryFn: withAction(findCurrentAccount),
|
|
13
|
+
staleTime: 0,
|
|
14
|
+
gcTime: 10 * 60 * 1000,
|
|
15
|
+
retry: false,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function useInvalidateAccount() {
|
|
20
|
+
const queryClient = useQueryClient();
|
|
21
|
+
return () => queryClient.invalidateQueries({ queryKey: ACCOUNT_QUERY_KEY });
|
|
22
|
+
}
|