From 8949dddda23c66c358e7e106fcf090ca4a60903c Mon Sep 17 00:00:00 2001 From: luizhf42 Date: Thu, 20 Aug 2026 10:09:39 -0300 Subject: [PATCH] refactor(ui): import all generated client symbols from the barrel `includeInEntry: true` makes the barrel re-export every generated symbol (`*Options`, `*QueryKey`, `*Mutation`, types). Importing from the barrel instead of the internal submodules (`@tanstack/react-query.gen`, `types.gen`) means tests only ever need to mock `@/client`. --- ui/apps/console/openapi-ts.config.ts | 5 +++- .../console/src/components/ConnectDrawer.tsx | 2 +- .../src/components/billing/BillingSection.tsx | 12 ++++++--- .../__tests__/DeviceLimitBanner.test.tsx | 5 +--- .../common/__tests__/LicenseBanner.test.tsx | 5 +--- .../common/__tests__/LicenseGuard.test.tsx | 5 +--- .../__tests__/useAdminFirewallRules.test.ts | 3 --- .../hooks/__tests__/useAdminLicense.test.ts | 3 --- .../hooks/__tests__/useAdminSessions.test.ts | 5 +--- .../__tests__/useAdminUserMutations.test.ts | 2 +- .../src/hooks/__tests__/useAdminUsers.test.ts | 3 --- .../src/hooks/__tests__/useBilling.test.ts | 7 ++--- .../hooks/__tests__/useDeviceChooser.test.ts | 2 +- .../__tests__/useInvitationMutations.test.ts | 2 +- .../hooks/__tests__/useInvitations.test.ts | 27 +++++++++---------- .../__tests__/useLatestAnnouncement.test.ts | 7 ++--- .../src/hooks/__tests__/usePublicKeys.test.ts | 3 --- .../__tests__/useSupportIdentifier.test.ts | 10 +++---- .../hooks/__tests__/useUploadLicense.test.ts | 2 +- .../console/src/hooks/useAccessPolicies.ts | 3 +-- .../src/hooks/useAccessPolicyMutations.ts | 2 +- .../hooks/useAdminAccountRequestMutations.ts | 5 +--- .../src/hooks/useAdminAccountRequests.ts | 2 +- .../hooks/useAdminAnnouncementMutations.ts | 2 +- .../src/hooks/useAdminAnnouncements.ts | 6 ++--- ui/apps/console/src/hooks/useAdminDevices.ts | 6 ++--- .../src/hooks/useAdminFirewallRules.ts | 6 ++--- ui/apps/console/src/hooks/useAdminLicense.ts | 8 +++--- .../src/hooks/useAdminNamespaceMutations.ts | 2 +- .../console/src/hooks/useAdminNamespaces.ts | 6 ++--- .../src/hooks/useAdminSessionDetail.ts | 2 +- ui/apps/console/src/hooks/useAdminSessions.ts | 2 +- ui/apps/console/src/hooks/useAdminStats.ts | 5 +--- .../src/hooks/useAdminUserMutations.ts | 2 +- ui/apps/console/src/hooks/useAdminUsers.ts | 6 ++--- .../console/src/hooks/useApiKeyMutations.ts | 2 +- ui/apps/console/src/hooks/useApiKeys.ts | 2 +- ui/apps/console/src/hooks/useBilling.ts | 4 +-- ui/apps/console/src/hooks/useContainer.ts | 2 +- .../src/hooks/useContainerMutations.ts | 6 +++-- ui/apps/console/src/hooks/useContainers.ts | 5 ++-- ui/apps/console/src/hooks/useDevice.ts | 2 +- ui/apps/console/src/hooks/useDeviceChooser.ts | 2 +- ui/apps/console/src/hooks/useDeviceCode.ts | 2 +- .../console/src/hooks/useDeviceMutations.ts | 5 ++-- ui/apps/console/src/hooks/useDevices.ts | 4 +-- .../src/hooks/useFirewallRuleMutations.ts | 2 +- ui/apps/console/src/hooks/useFirewallRules.ts | 2 +- .../console/src/hooks/useInstallKeyEvents.ts | 2 +- .../src/hooks/useInstallKeyMutations.ts | 2 +- ui/apps/console/src/hooks/useInstallKeys.ts | 8 ++++-- .../src/hooks/useInvitationMutations.ts | 2 +- ui/apps/console/src/hooks/useInvitations.ts | 6 ++--- .../src/hooks/useLatestAnnouncement.ts | 2 +- .../console/src/hooks/useMemberMutations.ts | 2 +- .../src/hooks/useNamespaceMutations.ts | 2 -- ui/apps/console/src/hooks/useNamespaces.ts | 8 +++--- .../src/hooks/usePublicKeyMutations.ts | 2 +- ui/apps/console/src/hooks/usePublicKeys.ts | 2 +- .../console/src/hooks/useRevealInstallKey.ts | 2 +- ui/apps/console/src/hooks/useSSHIdentities.ts | 3 +-- .../src/hooks/useSSHIdentityMutations.ts | 2 +- .../src/hooks/useServiceAccountMutations.ts | 2 +- .../console/src/hooks/useServiceAccounts.ts | 3 +-- ui/apps/console/src/hooks/useSession.ts | 2 +- .../console/src/hooks/useSessionMutations.ts | 3 +-- ui/apps/console/src/hooks/useSessions.ts | 2 +- ui/apps/console/src/hooks/useStats.ts | 2 +- .../console/src/hooks/useSupportIdentifier.ts | 2 +- ui/apps/console/src/hooks/useTagMutations.ts | 2 +- ui/apps/console/src/hooks/useTags.ts | 2 +- ui/apps/console/src/hooks/useUploadLicense.ts | 2 +- .../src/hooks/useWebEndpointMutations.ts | 2 +- ui/apps/console/src/hooks/useWebEndpoints.ts | 2 +- .../src/pages/__tests__/WebEndpoints.test.tsx | 2 +- ui/apps/console/src/pages/admin/License.tsx | 2 +- ui/apps/console/src/utils/license.ts | 2 +- 77 files changed, 126 insertions(+), 166 deletions(-) diff --git a/ui/apps/console/openapi-ts.config.ts b/ui/apps/console/openapi-ts.config.ts index 8a3557e06de..6cad7d0c68b 100644 --- a/ui/apps/console/openapi-ts.config.ts +++ b/ui/apps/console/openapi-ts.config.ts @@ -6,7 +6,9 @@ if (!input) { // generating from its URL produces a client missing the other editions' // schemas. Use `npm run generate -w @shellhub/console`, which bundles the // combined spec before invoking openapi-ts. - throw new Error("OPENAPI_SPEC_PATH is not set; run `npm run generate -w @shellhub/console`."); + throw new Error( + "OPENAPI_SPEC_PATH is not set; run `npm run generate -w @shellhub/console`.", + ); } export default defineConfig({ @@ -23,6 +25,7 @@ export default defineConfig({ name: "@tanstack/react-query", queryOptions: true, mutationOptions: true, + includeInEntry: true, }, ], }); diff --git a/ui/apps/console/src/components/ConnectDrawer.tsx b/ui/apps/console/src/components/ConnectDrawer.tsx index 89427e49b01..e14da4a14d5 100644 --- a/ui/apps/console/src/components/ConnectDrawer.tsx +++ b/ui/apps/console/src/components/ConnectDrawer.tsx @@ -25,7 +25,7 @@ import { import { BROWSER_KEY_QUERY_KEY } from "@/hooks/useBrowserKey"; import { isRecordingSupported } from "../utils/recordings"; import { isAlreadyEnrolled } from "../utils/sshIdentity"; -import { listSshIdentitiesOptions } from "../client/@tanstack/react-query.gen"; +import { listSshIdentitiesOptions } from "../client"; import BrowserEnrollDialog from "./terminal/BrowserEnrollDialog"; import CopyButton from "./common/CopyButton"; import Drawer from "./common/Drawer"; diff --git a/ui/apps/console/src/components/billing/BillingSection.tsx b/ui/apps/console/src/components/billing/BillingSection.tsx index 77edc5cc901..840f69f1816 100644 --- a/ui/apps/console/src/components/billing/BillingSection.tsx +++ b/ui/apps/console/src/components/billing/BillingSection.tsx @@ -14,7 +14,7 @@ import { useNamespace } from "@/hooks/useNamespaces"; import { useOpenBillingPortal, useSubscription } from "@/hooks/useBilling"; import { useInvalidateByIds } from "@/hooks/useInvalidateQueries"; import { formatExpiry } from "@/utils/date"; -import type { BillingStatus } from "@/client/types.gen"; +import type { BillingStatus } from "@/client"; import { cn } from "@shellhub/design-system/cn"; import { Button } from "@shellhub/design-system/primitives"; @@ -157,7 +157,10 @@ function SectionRow({ function StatusBadge({ status }: { status: BillingStatus }) { return ( {STATUS_LABEL[status]} @@ -277,7 +280,10 @@ export default function BillingSection({ sectionId }: BillingSectionProps) {