From 7042d734108b4983ced599e838b65259c60892f3 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 18 Dec 2024 00:04:50 +0530 Subject: [PATCH] feat: upgrade react-query to v5 and changed hooks to staletime inf for prev context based ones --- .../src/components/auth/EnterEmailStep.tsx | 6 +- .../UpgradePlanModal/UpgradePlanModal.tsx | 4 +- .../src/components/mfa/TotpRegistration.tsx | 6 +- .../src/components/navigation/NavHeader.tsx | 11 +- .../v2/UpgradePlanModal/UpgradePlanModal.tsx | 71 ----- .../components/v2/UpgradePlanModal/index.tsx | 1 - frontend-v2/src/components/v2/index.tsx | 1 - .../OrgPermissionContext.tsx | 28 +- .../OrganizationContext.tsx | 13 +- .../ServerConfigContext.tsx | 6 +- .../SubscriptionContext.tsx | 13 +- .../src/context/UserContext/UserContext.tsx | 11 +- .../src/hooks/api/accessApproval/mutation.tsx | 26 +- .../src/hooks/api/accessApproval/queries.tsx | 40 +-- frontend-v2/src/hooks/api/admin/mutation.ts | 10 +- frontend-v2/src/hooks/api/admin/queries.ts | 1 + frontend-v2/src/hooks/api/apiKeys/queries.tsx | 6 +- .../hooks/api/auditLogStreams/mutations.tsx | 6 +- .../src/hooks/api/auditLogs/queries.tsx | 15 +- frontend-v2/src/hooks/api/auth/queries.tsx | 7 +- frontend-v2/src/hooks/api/bots/queries.tsx | 2 +- frontend-v2/src/hooks/api/ca/mutations.tsx | 30 ++- .../api/certificateTemplates/mutations.tsx | 30 ++- .../src/hooks/api/certificates/mutations.tsx | 8 +- frontend-v2/src/hooks/api/cmeks/mutations.tsx | 6 +- frontend-v2/src/hooks/api/cmeks/queries.tsx | 2 +- .../src/hooks/api/dashboard/queries.tsx | 68 +---- .../src/hooks/api/dynamicSecret/mutation.ts | 18 +- .../hooks/api/dynamicSecretLease/mutation.ts | 33 ++- .../mutations.tsx | 2 +- .../src/hooks/api/groups/mutations.tsx | 16 +- frontend-v2/src/hooks/api/groups/queries.tsx | 2 +- .../src/hooks/api/identities/mutations.tsx | 246 ++++++++++++------ .../src/hooks/api/identities/queries.tsx | 75 ++---- .../mutation.tsx | 12 +- .../hooks/api/incidentContacts/queries.tsx | 4 +- .../src/hooks/api/integrationAuth/queries.tsx | 24 +- .../src/hooks/api/integrations/queries.tsx | 12 +- frontend-v2/src/hooks/api/kms/mutations.tsx | 14 +- .../src/hooks/api/ldapConfig/mutations.tsx | 8 +- .../src/hooks/api/migration/mutations.tsx | 4 +- .../src/hooks/api/oidcConfig/mutations.tsx | 6 +- .../src/hooks/api/organization/queries.tsx | 66 +++-- .../src/hooks/api/pkiAlerts/mutations.tsx | 10 +- .../hooks/api/pkiCollections/mutations.tsx | 28 +- .../hooks/api/projectTemplates/mutations.tsx | 10 +- .../mutation.tsx | 12 +- .../src/hooks/api/rateLimit/mutation.ts | 2 +- frontend-v2/src/hooks/api/roles/mutation.tsx | 20 +- frontend-v2/src/hooks/api/scim/mutations.tsx | 4 +- .../src/hooks/api/secretApproval/mutation.tsx | 12 +- .../src/hooks/api/secretApproval/queries.tsx | 21 +- .../api/secretApprovalRequest/mutation.tsx | 12 +- .../api/secretApprovalRequest/queries.tsx | 21 +- .../src/hooks/api/secretFolders/queries.tsx | 96 +++---- .../src/hooks/api/secretImports/mutation.tsx | 54 ++-- .../src/hooks/api/secretRotation/mutation.tsx | 6 +- .../src/hooks/api/secretSharing/mutations.ts | 9 +- .../src/hooks/api/secretSharing/queries.ts | 4 +- .../src/hooks/api/secretSnapshots/queries.tsx | 23 +- .../src/hooks/api/secrets/mutations.tsx | 184 ++++++------- frontend-v2/src/hooks/api/secrets/queries.tsx | 20 -- .../src/hooks/api/serviceTokens/queries.tsx | 8 +- .../src/hooks/api/ssoConfig/queries.tsx | 6 +- frontend-v2/src/hooks/api/tags/queries.tsx | 4 +- .../src/hooks/api/trustedIps/queries.ts | 6 +- frontend-v2/src/hooks/api/users/mutation.tsx | 14 +- frontend-v2/src/hooks/api/users/queries.tsx | 46 ++-- .../src/hooks/api/webhooks/mutation.tsx | 10 +- .../api/workflowIntegrations/mutation.tsx | 14 +- .../src/hooks/api/workspace/mutations.tsx | 20 +- .../src/hooks/api/workspace/queries.tsx | 83 +++--- frontend-v2/src/routes/_authenticate.tsx | 6 +- .../src/routes/_authenticate/_org_details.tsx | 25 +- .../OrgAdminProjects/OrgAdminProjects.tsx | 6 +- .../audit-logs/-components/LogsFilter.tsx | 4 +- .../audit-logs/-components/LogsSection.tsx | 2 +- .../audit-logs/-components/LogsTable.tsx | 8 +- .../BillingCloudTab/CurrentPlanSection.tsx | 8 +- .../BillingCloudTab/ManagePlansTable.tsx | 2 +- .../BillingCloudTab/PreviewSection.tsx | 4 +- .../BillingDetailsTab/CompanyNameSection.tsx | 6 +- .../BillingDetailsTab/InvoiceEmailSection.tsx | 6 +- .../BillingDetailsTab/PmtMethodsSection.tsx | 4 +- .../BillingDetailsTab/PmtMethodsTable.tsx | 8 +- .../BillingDetailsTab/TaxIDTable.tsx | 8 +- .../BillingReceiptsTab/InvoicesTable.tsx | 8 +- .../BillingSelfHostedTab/LicensesSection.tsx | 8 +- .../-components/AddGroupMemberModal.tsx | 12 +- .../-components/GroupCreateUpdateModal.tsx | 4 +- .../-components/GroupDetailsSection.tsx | 4 +- .../GroupMembersSection/GroupMembersTable.tsx | 8 +- .../$organizationId/groups/$groupId/index.tsx | 8 +- .../IdentityAddToProjectModal.tsx | 4 +- .../IdentityProjectsTable.tsx | 8 +- .../-components/IdentityTokenListModal.tsx | 8 +- .../identities/$identityId/index.tsx | 4 +- .../OrgGroupsSection/OrgGroupModal.tsx | 4 +- .../OrgGroupsSection/OrgGroupsSection.tsx | 3 +- .../OrgGroupsSection/OrgGroupsTable.tsx | 8 +- .../IdentityAuthMethodModalContent.tsx | 4 +- .../IdentitySection/IdentitySection.tsx | 3 +- .../IdentitySection/IdentityTable.tsx | 12 +- ...IdentityUniversalAuthClientSecretModal.tsx | 8 +- .../OrgMembersSection/AddOrgMemberModal.tsx | 2 +- .../OrgMembersSection/OrgMembersSection.tsx | 8 +- .../OrgMembersSection/OrgMembersTable.tsx | 4 +- .../OrgRoleTabSection/OrgRoleTable.tsx | 6 +- .../$organizationId/members/index.tsx | 2 - .../-components/UserDetailsSection.tsx | 4 +- .../UserProjectsSection/UserGroupsTable.tsx | 4 +- .../UserProjectsSection/UserProjectsTable.tsx | 8 +- .../memberships/$membershipId/index.tsx | 4 +- .../secret-manager/overview.tsx | 15 +- .../-components/SecretScanningLogsTable.tsx | 8 +- .../$organizationId/secret-scanning/index.tsx | 2 +- .../-components/ShareSecretsTable.tsx | 10 +- .../AuditLogStreamTab/AuditLogStreamForm.tsx | 2 +- .../AuditLogStreamTab/AuditLogStreamTab.tsx | 6 +- .../ExternalGroupOrgRoleMappings.tsx | 2 +- .../OrgAuthTab/LDAPGroupMapModal.tsx | 8 +- .../-components/OrgAuthTab/LDAPModal.tsx | 4 +- .../-components/OrgAuthTab/OIDCModal.tsx | 4 +- .../-components/OrgAuthTab/OrgAuthTab.tsx | 9 +- .../OrgAuthTab/OrgGeneralAuthSection.tsx | 3 +- .../OrgAuthTab/OrgGenericAuthSection.tsx | 3 +- .../-components/OrgAuthTab/OrgLDAPSection.tsx | 3 +- .../-components/OrgAuthTab/OrgOIDCSection.tsx | 9 +- .../-components/OrgAuthTab/OrgSCIMSection.tsx | 3 +- .../-components/OrgAuthTab/OrgSSOSection.tsx | 9 +- .../-components/OrgAuthTab/SSOModal.tsx | 4 +- .../-components/OrgAuthTab/ScimTokenModal.tsx | 8 +- .../OrgDeleteSection/OrgDeleteSection.tsx | 4 +- .../OrgEncryptionTab/GcpKmsForm.tsx | 2 +- .../OrgEncryptionTab/OrgEncryptionTab.tsx | 6 +- .../UpdateExternalKmsForm.tsx | 4 +- .../AddOrgIncidentContactModal.tsx | 4 +- .../OrgIncidentContactsTable.tsx | 6 +- .../OrgNameChangeSection.tsx | 6 +- .../EditProjectTemplateSection.tsx | 4 +- .../components/ProjectTemplatesSection.tsx | 3 +- .../components/ProjectTemplatesTable.tsx | 6 +- .../-components/APIKeySection/APIKeyTable.tsx | 8 +- .../APIKeySection/AddAPIKeyModal.tsx | 6 +- .../DeleteAccountSection.tsx | 4 +- .../SecuritySection/MFASection.tsx | 4 +- .../SessionsSection/SessionsTable.tsx | 8 +- .../UserNameSection/UserNameSection.tsx | 4 +- .../login/-components/Login.utils.tsx | 2 +- .../login/provider/success.tsx | 4 +- .../login/select-organization/index.tsx | 8 +- .../_restrict_login_signup/password-reset.tsx | 2 +- frontend-v2/src/types/reactQuery.ts | 6 + 153 files changed, 1115 insertions(+), 1084 deletions(-) delete mode 100644 frontend-v2/src/components/v2/UpgradePlanModal/UpgradePlanModal.tsx delete mode 100644 frontend-v2/src/components/v2/UpgradePlanModal/index.tsx create mode 100644 frontend-v2/src/types/reactQuery.ts diff --git a/frontend-v2/src/components/auth/EnterEmailStep.tsx b/frontend-v2/src/components/auth/EnterEmailStep.tsx index 689dad2f8..a74e9611c 100644 --- a/frontend-v2/src/components/auth/EnterEmailStep.tsx +++ b/frontend-v2/src/components/auth/EnterEmailStep.tsx @@ -27,7 +27,7 @@ export default function EnterEmailStep({ setEmail, incrementStep }: DownloadBackupPDFStepProps): JSX.Element { - const { mutateAsync, isLoading } = useSendVerificationEmail(); + const { mutateAsync, isPending } = useSendVerificationEmail(); const [emailError, setEmailError] = useState(false); const { t } = useTranslation(); @@ -95,8 +95,8 @@ export default function EnterEmailStep({ className="h-14" colorSchema="primary" variant="outline_bg" - isLoading={isLoading} - isDisabled={isLoading} + isLoading={isPending} + isDisabled={isPending} > {" "} {String(t("signup.step1-submit"))}{" "} diff --git a/frontend-v2/src/components/license/UpgradePlanModal/UpgradePlanModal.tsx b/frontend-v2/src/components/license/UpgradePlanModal/UpgradePlanModal.tsx index 09af0139c..76ddd4dbb 100644 --- a/frontend-v2/src/components/license/UpgradePlanModal/UpgradePlanModal.tsx +++ b/frontend-v2/src/components/license/UpgradePlanModal/UpgradePlanModal.tsx @@ -13,7 +13,7 @@ type Props = { export const UpgradePlanModal = ({ text, isOpen, onOpenChange }: Props): JSX.Element => { const { subscription } = useSubscription(); const { currentOrg } = useOrganization(); - const { mutateAsync, isLoading } = useGetOrgTrialUrl(); + const { mutateAsync, isPending } = useGetOrgTrialUrl(); const link = subscription && subscription.slug !== null ? `/org/${currentOrg?.id}/billing` @@ -50,7 +50,7 @@ export const UpgradePlanModal = ({ text, isOpen, onOpenChange }: Props): JSX.Ele

- -
- - - ); -}; diff --git a/frontend-v2/src/components/v2/UpgradePlanModal/index.tsx b/frontend-v2/src/components/v2/UpgradePlanModal/index.tsx deleted file mode 100644 index 09a53d31c..000000000 --- a/frontend-v2/src/components/v2/UpgradePlanModal/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { UpgradePlanModal } from "./UpgradePlanModal"; diff --git a/frontend-v2/src/components/v2/index.tsx b/frontend-v2/src/components/v2/index.tsx index f35d006e9..8e195102b 100644 --- a/frontend-v2/src/components/v2/index.tsx +++ b/frontend-v2/src/components/v2/index.tsx @@ -34,4 +34,3 @@ export * from "./Tabs"; export * from "./Tag"; export * from "./TextArea"; export * from "./Tooltip"; -export * from "./UpgradePlanModal"; diff --git a/frontend-v2/src/context/OrgPermissionContext/OrgPermissionContext.tsx b/frontend-v2/src/context/OrgPermissionContext/OrgPermissionContext.tsx index 1d399dedf..15389d3f6 100644 --- a/frontend-v2/src/context/OrgPermissionContext/OrgPermissionContext.tsx +++ b/frontend-v2/src/context/OrgPermissionContext/OrgPermissionContext.tsx @@ -1,10 +1,32 @@ +import { createMongoAbility, MongoAbility, RawRuleOf } from "@casl/ability"; +import { unpackRules } from "@casl/ability/extra"; +import { useSuspenseQuery } from "@tanstack/react-query"; import { useRouteContext } from "@tanstack/react-router"; +import { + conditionsMatcher, + fetchUserOrgPermissions, + roleQueryKeys +} from "@app/hooks/api/roles/queries"; + +import { OrgPermissionSet } from "./types"; + export const useOrgPermission = () => { - const ctx = useRouteContext({ + const organizationId = useRouteContext({ from: "/_authenticate/_org_details", - select: (el) => el.orgPermission + select: (el) => el.organizationId }); - return ctx; + const { data } = useSuspenseQuery({ + queryKey: roleQueryKeys.getUserOrgPermissions({ orgId: organizationId }), + queryFn: () => fetchUserOrgPermissions({ orgId: organizationId }), + select: (res) => { + const rule = unpackRules>>(res.permissions); + const ability = createMongoAbility(rule, { conditionsMatcher }); + return { permission: ability, membership: res.membership }; + }, + staleTime: Infinity + }); + + return data; }; diff --git a/frontend-v2/src/context/OrganizationContext/OrganizationContext.tsx b/frontend-v2/src/context/OrganizationContext/OrganizationContext.tsx index 78c471759..b1898d12a 100644 --- a/frontend-v2/src/context/OrganizationContext/OrganizationContext.tsx +++ b/frontend-v2/src/context/OrganizationContext/OrganizationContext.tsx @@ -1,9 +1,18 @@ +import { useSuspenseQuery } from "@tanstack/react-query"; import { useRouteContext } from "@tanstack/react-router"; +import { fetchOrganizationById, organizationKeys } from "@app/hooks/api/organization/queries"; + export const useOrganization = () => { - const currentOrg = useRouteContext({ + const organizationId = useRouteContext({ from: "/_authenticate/_org_details", - select: (el) => el.organization + select: (el) => el.organizationId + }); + + const { data: currentOrg } = useSuspenseQuery({ + queryKey: organizationKeys.getOrgById(organizationId), + queryFn: () => fetchOrganizationById(organizationId), + staleTime: Infinity }); return { currentOrg }; diff --git a/frontend-v2/src/context/ServerConfigContext/ServerConfigContext.tsx b/frontend-v2/src/context/ServerConfigContext/ServerConfigContext.tsx index 3af31dbb7..acc63118b 100644 --- a/frontend-v2/src/context/ServerConfigContext/ServerConfigContext.tsx +++ b/frontend-v2/src/context/ServerConfigContext/ServerConfigContext.tsx @@ -1,10 +1,12 @@ -import { adminQueryKeys, fetchServerConfig } from "@app/hooks/api/admin/queries"; import { useSuspenseQuery } from "@tanstack/react-query"; +import { adminQueryKeys, fetchServerConfig } from "@app/hooks/api/admin/queries"; + export const useServerConfig = () => { const { data: config } = useSuspenseQuery({ queryKey: adminQueryKeys.serverConfig(), - queryFn: fetchServerConfig + queryFn: fetchServerConfig, + staleTime: Infinity }); return { config }; diff --git a/frontend-v2/src/context/SubscriptionContext/SubscriptionContext.tsx b/frontend-v2/src/context/SubscriptionContext/SubscriptionContext.tsx index ac563b5f1..447ac948c 100644 --- a/frontend-v2/src/context/SubscriptionContext/SubscriptionContext.tsx +++ b/frontend-v2/src/context/SubscriptionContext/SubscriptionContext.tsx @@ -1,9 +1,18 @@ +import { useSuspenseQuery } from "@tanstack/react-query"; import { useRouteContext } from "@tanstack/react-router"; +import { fetchOrgSubscription, subscriptionQueryKeys } from "@app/hooks/api/subscriptions/queries"; + export const useSubscription = () => { - const subscription = useRouteContext({ + const organizationId = useRouteContext({ from: "/_authenticate/_org_details", - select: (el) => el.subscription + select: (el) => el.organizationId + }); + + const { data: subscription } = useSuspenseQuery({ + queryKey: subscriptionQueryKeys.getOrgSubsription(organizationId), + queryFn: () => fetchOrgSubscription(organizationId), + staleTime: Infinity }); return { subscription }; diff --git a/frontend-v2/src/context/UserContext/UserContext.tsx b/frontend-v2/src/context/UserContext/UserContext.tsx index 507e0aaea..eafde9465 100644 --- a/frontend-v2/src/context/UserContext/UserContext.tsx +++ b/frontend-v2/src/context/UserContext/UserContext.tsx @@ -1,7 +1,14 @@ -import { useRouteContext } from "@tanstack/react-router"; +import { useSuspenseQuery } from "@tanstack/react-query"; + +import { userKeys } from "@app/hooks/api"; +import { fetchUserDetails } from "@app/hooks/api/users/queries"; export const useUser = () => { - const user = useRouteContext({ from: "/_authenticate", select: (el) => el.user })!; + const { data: user } = useSuspenseQuery({ + queryKey: userKeys.getUser, + queryFn: fetchUserDetails, + staleTime: Infinity + }); return { user }; }; diff --git a/frontend-v2/src/hooks/api/accessApproval/mutation.tsx b/frontend-v2/src/hooks/api/accessApproval/mutation.tsx index 32cc9c178..115b73186 100644 --- a/frontend-v2/src/hooks/api/accessApproval/mutation.tsx +++ b/frontend-v2/src/hooks/api/accessApproval/mutation.tsx @@ -37,7 +37,9 @@ export const useCreateAccessApprovalPolicy = () => { return data; }, onSuccess: (_, { projectSlug }) => { - queryClient.invalidateQueries(accessApprovalKeys.getAccessApprovalPolicies(projectSlug)); + queryClient.invalidateQueries({ + queryKey: accessApprovalKeys.getAccessApprovalPolicies(projectSlug) + }); } }); }; @@ -57,7 +59,9 @@ export const useUpdateAccessApprovalPolicy = () => { return data; }, onSuccess: (_, { projectSlug }) => { - queryClient.invalidateQueries(accessApprovalKeys.getAccessApprovalPolicies(projectSlug)); + queryClient.invalidateQueries({ + queryKey: accessApprovalKeys.getAccessApprovalPolicies(projectSlug) + }); } }); }; @@ -71,7 +75,9 @@ export const useDeleteAccessApprovalPolicy = () => { return data; }, onSuccess: (_, { projectSlug }) => { - queryClient.invalidateQueries(accessApprovalKeys.getAccessApprovalPolicies(projectSlug)); + queryClient.invalidateQueries({ + queryKey: accessApprovalKeys.getAccessApprovalPolicies(projectSlug) + }); } }); }; @@ -96,7 +102,9 @@ export const useCreateAccessRequest = () => { return data; }, onSuccess: (_, { projectSlug }) => { - queryClient.invalidateQueries(accessApprovalKeys.getAccessApprovalRequestCount(projectSlug)); + queryClient.invalidateQueries({ + queryKey: accessApprovalKeys.getAccessApprovalRequestCount(projectSlug) + }); } }); }; @@ -124,10 +132,12 @@ export const useReviewAccessRequest = () => { return data; }, onSuccess: (_, { projectSlug, envSlug, requestedBy }) => { - queryClient.invalidateQueries( - accessApprovalKeys.getAccessApprovalRequests(projectSlug, envSlug, requestedBy) - ); - queryClient.invalidateQueries(accessApprovalKeys.getAccessApprovalRequestCount(projectSlug)); + queryClient.invalidateQueries({ + queryKey: accessApprovalKeys.getAccessApprovalRequests(projectSlug, envSlug, requestedBy) + }); + queryClient.invalidateQueries({ + queryKey: accessApprovalKeys.getAccessApprovalRequestCount(projectSlug) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/accessApproval/queries.tsx b/frontend-v2/src/hooks/api/accessApproval/queries.tsx index 599962e43..1aa40c588 100644 --- a/frontend-v2/src/hooks/api/accessApproval/queries.tsx +++ b/frontend-v2/src/hooks/api/accessApproval/queries.tsx @@ -1,7 +1,8 @@ import { PackRule, unpackRules } from "@casl/ability/extra"; -import { useQuery, UseQueryOptions } from "@tanstack/react-query"; +import { useQuery } from "@tanstack/react-query"; import { apiRequest } from "@app/config/request"; +import { TReactQueryOptions } from "@app/types/reactQuery"; import { TProjectPermission } from "../roles/types"; import { @@ -41,15 +42,9 @@ export const useGetAccessPolicyApprovalCount = ({ projectSlug, envSlug, options = {} -}: TGetAccessPolicyApprovalCountDTO & { - options?: UseQueryOptions< - number, - unknown, - number, - ReturnType - >; -}) => +}: TGetAccessPolicyApprovalCountDTO & TReactQueryOptions) => useQuery({ + queryKey: accessApprovalKeys.getAccessApprovalRequestCount(projectSlug), queryFn: () => fetchPolicyApprovalCount({ projectSlug, envSlug }), ...options, enabled: Boolean(projectSlug) && (options?.enabled ?? true) @@ -99,14 +94,7 @@ const fetchAccessRequestsCount = async (projectSlug: string) => { export const useGetAccessRequestsCount = ({ projectSlug, options = {} -}: TGetAccessApprovalRequestsDTO & { - options?: UseQueryOptions< - TAccessRequestCount, - unknown, - { pendingCount: number; finalizedCount: number }, - ReturnType - >; -}) => +}: TGetAccessApprovalRequestsDTO & TReactQueryOptions) => useQuery({ queryKey: accessApprovalKeys.getAccessApprovalRequestCount(projectSlug), queryFn: () => fetchAccessRequestsCount(projectSlug), @@ -119,14 +107,7 @@ export const useGetAccessApprovalPolicies = ({ envSlug, authorProjectMembershipId, options = {} -}: TGetAccessApprovalRequestsDTO & { - options?: UseQueryOptions< - TAccessApprovalPolicy[], - unknown, - TAccessApprovalPolicy[], - ReturnType - >; -}) => +}: TGetAccessApprovalRequestsDTO & TReactQueryOptions) => useQuery({ queryKey: accessApprovalKeys.getAccessApprovalPolicies(projectSlug), queryFn: () => fetchApprovalPolicies({ projectSlug, envSlug, authorProjectMembershipId }), @@ -139,14 +120,7 @@ export const useGetAccessApprovalRequests = ({ envSlug, authorProjectMembershipId, options = {} -}: TGetAccessApprovalRequestsDTO & { - options?: UseQueryOptions< - TAccessApprovalRequest[], - unknown, - TAccessApprovalRequest[], - ReturnType - >; -}) => +}: TGetAccessApprovalRequestsDTO & TReactQueryOptions) => useQuery({ queryKey: accessApprovalKeys.getAccessApprovalRequests( projectSlug, diff --git a/frontend-v2/src/hooks/api/admin/mutation.ts b/frontend-v2/src/hooks/api/admin/mutation.ts index 8c414910d..c68760fa4 100644 --- a/frontend-v2/src/hooks/api/admin/mutation.ts +++ b/frontend-v2/src/hooks/api/admin/mutation.ts @@ -26,7 +26,7 @@ export const useCreateAdminUser = () => { return data; }, onSuccess: () => { - queryClient.invalidateQueries(adminQueryKeys.serverConfig()); + queryClient.invalidateQueries({ queryKey: adminQueryKeys.serverConfig() }); } }); }; @@ -48,8 +48,8 @@ export const useUpdateServerConfig = () => { }, onSuccess: (data) => { queryClient.setQueryData(adminQueryKeys.serverConfig(), data); - queryClient.invalidateQueries(adminQueryKeys.serverConfig()); - queryClient.invalidateQueries(organizationKeys.getUserOrganizations); + queryClient.invalidateQueries({ queryKey: adminQueryKeys.serverConfig() }); + queryClient.invalidateQueries({ queryKey: organizationKeys.getUserOrganizations }); } }); }; @@ -82,7 +82,7 @@ export const useUpdateAdminSlackConfig = () => { return data; }, onSuccess: () => { - queryClient.invalidateQueries(adminQueryKeys.getAdminSlackConfig()); + queryClient.invalidateQueries({ queryKey: adminQueryKeys.getAdminSlackConfig() }); } }); }; @@ -94,7 +94,7 @@ export const useUpdateServerEncryptionStrategy = () => { await apiRequest.patch("/api/v1/admin/encryption-strategies", { strategy }); }, onSuccess: () => { - queryClient.invalidateQueries(adminQueryKeys.getServerEncryptionStrategies()); + queryClient.invalidateQueries({ queryKey: adminQueryKeys.getServerEncryptionStrategies() }); } }); }; diff --git a/frontend-v2/src/hooks/api/admin/queries.ts b/frontend-v2/src/hooks/api/admin/queries.ts index 215a47a9e..12ae1cf64 100644 --- a/frontend-v2/src/hooks/api/admin/queries.ts +++ b/frontend-v2/src/hooks/api/admin/queries.ts @@ -48,6 +48,7 @@ export const useGetServerConfig = ({ export const useAdminGetUsers = (filters: AdminGetUsersFilters) => { return useInfiniteQuery({ + initialPageParam: 0, queryKey: adminQueryKeys.getUsers(filters), queryFn: async ({ pageParam }) => { const { data } = await apiRequest.get<{ users: User[] }>( diff --git a/frontend-v2/src/hooks/api/apiKeys/queries.tsx b/frontend-v2/src/hooks/api/apiKeys/queries.tsx index c913b797c..22997ec15 100644 --- a/frontend-v2/src/hooks/api/apiKeys/queries.tsx +++ b/frontend-v2/src/hooks/api/apiKeys/queries.tsx @@ -22,7 +22,7 @@ export const useCreateAPIKeyV2 = () => { return data; }, onSuccess: () => { - queryClient.invalidateQueries(userKeys.myAPIKeysV2); + queryClient.invalidateQueries({ queryKey: userKeys.myAPIKeysV2 }); } }); }; @@ -39,7 +39,7 @@ export const useUpdateAPIKeyV2 = () => { return apiKeyData; }, onSuccess: () => { - queryClient.invalidateQueries(userKeys.myAPIKeysV2); + queryClient.invalidateQueries({ queryKey: userKeys.myAPIKeysV2 }); } }); }; @@ -54,7 +54,7 @@ export const useDeleteAPIKeyV2 = () => { return apiKeyData; }, onSuccess: () => { - queryClient.invalidateQueries(userKeys.myAPIKeysV2); + queryClient.invalidateQueries({ queryKey: userKeys.myAPIKeysV2 }); } }); }; diff --git a/frontend-v2/src/hooks/api/auditLogStreams/mutations.tsx b/frontend-v2/src/hooks/api/auditLogStreams/mutations.tsx index 88094ad6b..1ed93f95b 100644 --- a/frontend-v2/src/hooks/api/auditLogStreams/mutations.tsx +++ b/frontend-v2/src/hooks/api/auditLogStreams/mutations.tsx @@ -22,7 +22,7 @@ export const useCreateAuditLogStream = () => { return data; }, onSuccess: (_, { orgId }) => { - queryClient.invalidateQueries(auditLogStreamKeys.list(orgId)); + queryClient.invalidateQueries({ queryKey: auditLogStreamKeys.list(orgId) }); } }); }; @@ -39,7 +39,7 @@ export const useUpdateAuditLogStream = () => { return data; }, onSuccess: (_, { orgId }) => { - queryClient.invalidateQueries(auditLogStreamKeys.list(orgId)); + queryClient.invalidateQueries({ queryKey: auditLogStreamKeys.list(orgId) }); } }); }; @@ -55,7 +55,7 @@ export const useDeleteAuditLogStream = () => { return data; }, onSuccess: (_, { orgId }) => { - queryClient.invalidateQueries(auditLogStreamKeys.list(orgId)); + queryClient.invalidateQueries({ queryKey: auditLogStreamKeys.list(orgId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/auditLogs/queries.tsx b/frontend-v2/src/hooks/api/auditLogs/queries.tsx index 5ec69b0e7..3b851f1cb 100644 --- a/frontend-v2/src/hooks/api/auditLogs/queries.tsx +++ b/frontend-v2/src/hooks/api/auditLogs/queries.tsx @@ -1,8 +1,9 @@ -import { useInfiniteQuery, UseInfiniteQueryOptions, useQuery } from "@tanstack/react-query"; +import { useInfiniteQuery, useQuery } from "@tanstack/react-query"; import { AxiosError } from "axios"; import { createNotification } from "@app/components/notifications"; import { apiRequest } from "@app/config/request"; +import { TReactQueryOptions } from "@app/types/reactQuery"; import { Actor, AuditLog, TGetAuditLogsFilter } from "./types"; @@ -16,18 +17,10 @@ export const auditLogKeys = { export const useGetAuditLogs = ( filters: TGetAuditLogsFilter, projectId: string | null, - options: Omit< - UseInfiniteQueryOptions< - AuditLog[], - unknown, - AuditLog[], - AuditLog[], - ReturnType - >, - "queryFn" | "queryKey" | "getNextPageParam" - > = {} + options: TReactQueryOptions["options"] = {} ) => { return useInfiniteQuery({ + initialPageParam: 0, queryKey: auditLogKeys.getAuditLogs(projectId, filters), queryFn: async ({ pageParam }) => { try { diff --git a/frontend-v2/src/hooks/api/auth/queries.tsx b/frontend-v2/src/hooks/api/auth/queries.tsx index 23c7fc70e..07baf011e 100644 --- a/frontend-v2/src/hooks/api/auth/queries.tsx +++ b/frontend-v2/src/hooks/api/auth/queries.tsx @@ -304,13 +304,14 @@ export const fetchAuthToken = async () => { const { data } = await apiRequest.post("/api/v1/auth/token", undefined, { withCredentials: true }); - + setAuthToken(data.token); return data; }; export const useGetAuthToken = () => - useQuery(authKeys.getAuthToken, fetchAuthToken, { - onSuccess: (data) => setAuthToken(data.token), + useQuery({ + queryKey: authKeys.getAuthToken, + queryFn: fetchAuthToken, retry: 0 }); diff --git a/frontend-v2/src/hooks/api/bots/queries.tsx b/frontend-v2/src/hooks/api/bots/queries.tsx index 3c9915791..8b2aedcdd 100644 --- a/frontend-v2/src/hooks/api/bots/queries.tsx +++ b/frontend-v2/src/hooks/api/bots/queries.tsx @@ -31,7 +31,7 @@ export const useUpdateBotActiveStatus = () => { }); }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(queryKeys.getBot(workspaceId)); + queryClient.invalidateQueries({ queryKey: queryKeys.getBot(workspaceId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/ca/mutations.tsx b/frontend-v2/src/hooks/api/ca/mutations.tsx index 7fd09f346..93ac4e6f0 100644 --- a/frontend-v2/src/hooks/api/ca/mutations.tsx +++ b/frontend-v2/src/hooks/api/ca/mutations.tsx @@ -29,7 +29,7 @@ export const useCreateCa = () => { return ca; }, onSuccess: (_, { projectSlug }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceCas({ projectSlug })); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceCas({ projectSlug }) }); } }); }; @@ -44,8 +44,8 @@ export const useUpdateCa = () => { return ca; }, onSuccess: ({ id }, { projectSlug }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceCas({ projectSlug })); - queryClient.invalidateQueries(caKeys.getCaById(id)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceCas({ projectSlug }) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaById(id) }); } }); }; @@ -60,7 +60,7 @@ export const useDeleteCa = () => { return ca; }, onSuccess: (_, { projectSlug }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceCas({ projectSlug })); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceCas({ projectSlug }) }); } }); }; @@ -89,9 +89,9 @@ export const useImportCaCertificate = () => { return data; }, onSuccess: (_, { caId, projectSlug }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceCas({ projectSlug })); - queryClient.invalidateQueries(caKeys.getCaCerts(caId)); - queryClient.invalidateQueries(caKeys.getCaCert(caId)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceCas({ projectSlug }) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaCerts(caId) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaCert(caId) }); } }); }; @@ -108,7 +108,9 @@ export const useCreateCertificate = () => { return data; }, onSuccess: (_, { projectSlug }) => { - queryClient.invalidateQueries(workspaceKeys.forWorkspaceCertificates(projectSlug)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.forWorkspaceCertificates(projectSlug) + }); } }); }; @@ -124,12 +126,12 @@ export const useRenewCa = () => { return data; }, onSuccess: (_, { caId, projectSlug }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceCas({ projectSlug })); - queryClient.invalidateQueries(caKeys.getCaById(caId)); - queryClient.invalidateQueries(caKeys.getCaCert(caId)); - queryClient.invalidateQueries(caKeys.getCaCerts(caId)); - queryClient.invalidateQueries(caKeys.getCaCsr(caId)); - queryClient.invalidateQueries(caKeys.getCaCrl(caId)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceCas({ projectSlug }) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaById(caId) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaCert(caId) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaCerts(caId) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaCsr(caId) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaCrl(caId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/certificateTemplates/mutations.tsx b/frontend-v2/src/hooks/api/certificateTemplates/mutations.tsx index f53543961..55bbcd417 100644 --- a/frontend-v2/src/hooks/api/certificateTemplates/mutations.tsx +++ b/frontend-v2/src/hooks/api/certificateTemplates/mutations.tsx @@ -25,8 +25,10 @@ export const useCreateCertTemplate = () => { return certificateTemplate; }, onSuccess: ({ caId }, { projectId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceCertificateTemplates(projectId)); - queryClient.invalidateQueries(caKeys.getCaCertTemplates(caId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceCertificateTemplates(projectId) + }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaCertTemplates(caId) }); } }); }; @@ -43,9 +45,11 @@ export const useUpdateCertTemplate = () => { return certificateTemplate; }, onSuccess: ({ caId }, { projectId, id }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceCertificateTemplates(projectId)); - queryClient.invalidateQueries(certTemplateKeys.getCertTemplateById(id)); - queryClient.invalidateQueries(caKeys.getCaCertTemplates(caId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceCertificateTemplates(projectId) + }); + queryClient.invalidateQueries({ queryKey: certTemplateKeys.getCertTemplateById(id) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaCertTemplates(caId) }); } }); }; @@ -60,9 +64,11 @@ export const useDeleteCertTemplate = () => { return certificateTemplate; }, onSuccess: ({ caId }, { projectId, id }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceCertificateTemplates(projectId)); - queryClient.invalidateQueries(certTemplateKeys.getCertTemplateById(id)); - queryClient.invalidateQueries(caKeys.getCaCertTemplates(caId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceCertificateTemplates(projectId) + }); + queryClient.invalidateQueries({ queryKey: certTemplateKeys.getCertTemplateById(id) }); + queryClient.invalidateQueries({ queryKey: caKeys.getCaCertTemplates(caId) }); } }); }; @@ -78,7 +84,9 @@ export const useCreateEstConfig = () => { return data; }, onSuccess: (_, { certificateTemplateId }) => { - queryClient.invalidateQueries(certTemplateKeys.getEstConfig(certificateTemplateId)); + queryClient.invalidateQueries({ + queryKey: certTemplateKeys.getEstConfig(certificateTemplateId) + }); } }); }; @@ -94,7 +102,9 @@ export const useUpdateEstConfig = () => { return data; }, onSuccess: (_, { certificateTemplateId }) => { - queryClient.invalidateQueries(certTemplateKeys.getEstConfig(certificateTemplateId)); + queryClient.invalidateQueries({ + queryKey: certTemplateKeys.getEstConfig(certificateTemplateId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/certificates/mutations.tsx b/frontend-v2/src/hooks/api/certificates/mutations.tsx index 00747f114..7e9cf4f91 100644 --- a/frontend-v2/src/hooks/api/certificates/mutations.tsx +++ b/frontend-v2/src/hooks/api/certificates/mutations.tsx @@ -17,7 +17,9 @@ export const useDeleteCert = () => { return certificate; }, onSuccess: (_, { projectSlug }) => { - queryClient.invalidateQueries(workspaceKeys.forWorkspaceCertificates(projectSlug)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.forWorkspaceCertificates(projectSlug) + }); } }); }; @@ -37,7 +39,9 @@ export const useRevokeCert = () => { return certificate; }, onSuccess: (_, { projectSlug }) => { - queryClient.invalidateQueries(workspaceKeys.forWorkspaceCertificates(projectSlug)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.forWorkspaceCertificates(projectSlug) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/cmeks/mutations.tsx b/frontend-v2/src/hooks/api/cmeks/mutations.tsx index f3a1e6eae..41e70c193 100644 --- a/frontend-v2/src/hooks/api/cmeks/mutations.tsx +++ b/frontend-v2/src/hooks/api/cmeks/mutations.tsx @@ -22,7 +22,7 @@ export const useCreateCmek = () => { return data; }, onSuccess: (_, { projectId }) => { - queryClient.invalidateQueries(cmekKeys.getCmeksByProjectId({ projectId })); + queryClient.invalidateQueries({ queryKey: cmekKeys.getCmeksByProjectId({ projectId }) }); } }); }; @@ -40,7 +40,7 @@ export const useUpdateCmek = () => { return data; }, onSuccess: (_, { projectId }) => { - queryClient.invalidateQueries(cmekKeys.getCmeksByProjectId({ projectId })); + queryClient.invalidateQueries({ queryKey: cmekKeys.getCmeksByProjectId({ projectId }) }); } }); }; @@ -54,7 +54,7 @@ export const useDeleteCmek = () => { return data; }, onSuccess: (_, { projectId }) => { - queryClient.invalidateQueries(cmekKeys.getCmeksByProjectId({ projectId })); + queryClient.invalidateQueries({ queryKey: cmekKeys.getCmeksByProjectId({ projectId }) }); } }); }; diff --git a/frontend-v2/src/hooks/api/cmeks/queries.tsx b/frontend-v2/src/hooks/api/cmeks/queries.tsx index 5c2dac895..69eedfb42 100644 --- a/frontend-v2/src/hooks/api/cmeks/queries.tsx +++ b/frontend-v2/src/hooks/api/cmeks/queries.tsx @@ -47,7 +47,7 @@ export const useGetCmeksByProjectId = ( return data; }, enabled: Boolean(projectId) && (options?.enabled ?? true), - keepPreviousData: true, + placeholderData: (previousData) => previousData, ...options }); }; diff --git a/frontend-v2/src/hooks/api/dashboard/queries.tsx b/frontend-v2/src/hooks/api/dashboard/queries.tsx index 3aa599716..4b63be988 100644 --- a/frontend-v2/src/hooks/api/dashboard/queries.tsx +++ b/frontend-v2/src/hooks/api/dashboard/queries.tsx @@ -1,8 +1,6 @@ import { useCallback } from "react"; import { useQuery, UseQueryOptions } from "@tanstack/react-query"; -import axios from "axios"; -import { createNotification } from "@app/components/notifications"; import { apiRequest } from "@app/config/request"; import { DashboardProjectSecretsByKeys, @@ -175,26 +173,6 @@ export const useGetProjectSecretsOverview = ( includeDynamicSecrets, environments }), - onError: (error) => { - if (axios.isAxiosError(error)) { - const { message, requestId } = error.response?.data as { - message: string; - requestId: string; - }; - createNotification({ - title: "Error fetching secret details", - type: "error", - text: message, - copyActions: [ - { - value: requestId, - name: "Request ID", - label: `Request ID: ${requestId}` - } - ] - }); - } - }, select: useCallback((data: Awaited>) => { const { secrets, ...select } = data; const uniqueSecrets = secrets ? unique(secrets, (i) => i.secretKey) : []; @@ -213,7 +191,7 @@ export const useGetProjectSecretsOverview = ( totalUniqueFoldersInPage: uniqueFolders.length }; }, []), - keepPreviousData: true + placeholderData: (previousData) => previousData }); }; @@ -278,26 +256,6 @@ export const useGetProjectSecretsDetails = ( includeDynamicSecrets, tags }), - onError: (error) => { - if (axios.isAxiosError(error)) { - const { message, requestId } = error.response?.data as { - message: string; - requestId: string; - }; - createNotification({ - title: "Error fetching secret details", - type: "error", - text: message, - copyActions: [ - { - value: requestId, - name: "Request ID", - label: `Request ID: ${requestId}` - } - ] - }); - } - }, select: useCallback( (data: Awaited>) => ({ ...data, @@ -305,7 +263,7 @@ export const useGetProjectSecretsDetails = ( }), [] ), - keepPreviousData: true + placeholderData: (previousData) => previousData }); }; @@ -373,26 +331,6 @@ export const useGetProjectSecretsQuickSearch = ( environments, tags }), - onError: (error) => { - if (axios.isAxiosError(error)) { - const { message, requestId } = error.response?.data as { - message: string; - requestId: string; - }; - createNotification({ - title: "Error fetching secrets deep search", - type: "error", - text: message, - copyActions: [ - { - value: requestId, - name: "Request ID", - label: `Request ID: ${requestId}` - } - ] - }); - } - }, select: useCallback((data: Awaited>) => { const { secrets, folders, dynamicSecrets } = data; @@ -413,6 +351,6 @@ export const useGetProjectSecretsQuickSearch = ( dynamicSecrets: groupedDynamicSecrets }; }, []), - keepPreviousData: true + placeholderData: (previousData) => previousData }); }; diff --git a/frontend-v2/src/hooks/api/dynamicSecret/mutation.ts b/frontend-v2/src/hooks/api/dynamicSecret/mutation.ts index b630132d2..e347e4493 100644 --- a/frontend-v2/src/hooks/api/dynamicSecret/mutation.ts +++ b/frontend-v2/src/hooks/api/dynamicSecret/mutation.ts @@ -24,8 +24,10 @@ export const useCreateDynamicSecret = () => { }, onSuccess: (_, { path, environmentSlug, projectSlug }) => { // TODO: optimize but we currently don't pass projectId - queryClient.invalidateQueries(dashboardKeys.all()); - queryClient.invalidateQueries(dynamicSecretKeys.list({ path, projectSlug, environmentSlug })); + queryClient.invalidateQueries({ queryKey: dashboardKeys.all() }); + queryClient.invalidateQueries({ + queryKey: dynamicSecretKeys.list({ path, projectSlug, environmentSlug }) + }); } }); }; @@ -43,8 +45,10 @@ export const useUpdateDynamicSecret = () => { }, onSuccess: (_, { path, environmentSlug, projectSlug }) => { // TODO: optimize but currently don't pass projectId - queryClient.invalidateQueries(dashboardKeys.all()); - queryClient.invalidateQueries(dynamicSecretKeys.list({ path, projectSlug, environmentSlug })); + queryClient.invalidateQueries({ queryKey: dashboardKeys.all() }); + queryClient.invalidateQueries({ + queryKey: dynamicSecretKeys.list({ path, projectSlug, environmentSlug }) + }); } }); }; @@ -62,8 +66,10 @@ export const useDeleteDynamicSecret = () => { }, onSuccess: (_, { path, environmentSlug, projectSlug }) => { // TODO: optimize but currently don't pass projectId - queryClient.invalidateQueries(dashboardKeys.all()); - queryClient.invalidateQueries(dynamicSecretKeys.list({ path, projectSlug, environmentSlug })); + queryClient.invalidateQueries({ queryKey: dashboardKeys.all() }); + queryClient.invalidateQueries({ + queryKey: dynamicSecretKeys.list({ path, projectSlug, environmentSlug }) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/dynamicSecretLease/mutation.ts b/frontend-v2/src/hooks/api/dynamicSecretLease/mutation.ts index d1c6149f7..1a95a3ab0 100644 --- a/frontend-v2/src/hooks/api/dynamicSecretLease/mutation.ts +++ b/frontend-v2/src/hooks/api/dynamicSecretLease/mutation.ts @@ -26,9 +26,14 @@ export const useCreateDynamicSecretLease = () => { return data; }, onSuccess: (_, { path, environmentSlug, projectSlug, dynamicSecretName }) => { - queryClient.invalidateQueries( - dynamicSecretLeaseKeys.list({ path, projectSlug, environmentSlug, dynamicSecretName }) - ); + queryClient.invalidateQueries({ + queryKey: dynamicSecretLeaseKeys.list({ + path, + projectSlug, + environmentSlug, + dynamicSecretName + }) + }); } }); }; @@ -45,9 +50,14 @@ export const useRenewDynamicSecretLease = () => { return data.lease; }, onSuccess: (_, { path, environmentSlug, projectSlug, dynamicSecretName }) => { - queryClient.invalidateQueries( - dynamicSecretLeaseKeys.list({ path, projectSlug, environmentSlug, dynamicSecretName }) - ); + queryClient.invalidateQueries({ + queryKey: dynamicSecretLeaseKeys.list({ + path, + projectSlug, + environmentSlug, + dynamicSecretName + }) + }); } }); }; @@ -64,9 +74,14 @@ export const useRevokeDynamicSecretLease = () => { return data.lease; }, onSuccess: (_, { path, environmentSlug, projectSlug, dynamicSecretName }) => { - queryClient.invalidateQueries( - dynamicSecretLeaseKeys.list({ path, projectSlug, environmentSlug, dynamicSecretName }) - ); + queryClient.invalidateQueries({ + queryKey: dynamicSecretLeaseKeys.list({ + path, + projectSlug, + environmentSlug, + dynamicSecretName + }) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/externalGroupOrgRoleMappings/mutations.tsx b/frontend-v2/src/hooks/api/externalGroupOrgRoleMappings/mutations.tsx index aac46726a..ccf4f567d 100644 --- a/frontend-v2/src/hooks/api/externalGroupOrgRoleMappings/mutations.tsx +++ b/frontend-v2/src/hooks/api/externalGroupOrgRoleMappings/mutations.tsx @@ -13,7 +13,7 @@ export const useUpdateExternalGroupOrgRoleMappings = () => { return data; }, onSuccess: () => { - queryClient.invalidateQueries(externalGroupOrgRoleMappingKeys.list()); + queryClient.invalidateQueries({ queryKey: externalGroupOrgRoleMappingKeys.list() }); } }); }; diff --git a/frontend-v2/src/hooks/api/groups/mutations.tsx b/frontend-v2/src/hooks/api/groups/mutations.tsx index 2f5c5984c..d45971995 100644 --- a/frontend-v2/src/hooks/api/groups/mutations.tsx +++ b/frontend-v2/src/hooks/api/groups/mutations.tsx @@ -29,7 +29,7 @@ export const useCreateGroup = () => { return group; }, onSuccess: (_, { organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgGroups(organizationId)); + queryClient.invalidateQueries({ queryKey: organizationKeys.getOrgGroups(organizationId) }); } }); }; @@ -57,8 +57,8 @@ export const useUpdateGroup = () => { return group; }, onSuccess: ({ orgId, id: groupId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgGroups(orgId)); - queryClient.invalidateQueries(groupKeys.getGroupById(groupId)); + queryClient.invalidateQueries({ queryKey: organizationKeys.getOrgGroups(orgId) }); + queryClient.invalidateQueries({ queryKey: groupKeys.getGroupById(groupId) }); } }); }; @@ -72,8 +72,8 @@ export const useDeleteGroup = () => { return group; }, onSuccess: ({ orgId, id: groupId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgGroups(orgId)); - queryClient.invalidateQueries(groupKeys.getGroupById(groupId)); + queryClient.invalidateQueries({ queryKey: organizationKeys.getOrgGroups(orgId) }); + queryClient.invalidateQueries({ queryKey: groupKeys.getGroupById(groupId) }); } }); }; @@ -94,7 +94,7 @@ export const useAddUserToGroup = () => { return data; }, onSuccess: (_, { slug }) => { - queryClient.invalidateQueries(groupKeys.forGroupUserMemberships(slug)); + queryClient.invalidateQueries({ queryKey: groupKeys.forGroupUserMemberships(slug) }); } }); }; @@ -117,8 +117,8 @@ export const useRemoveUserFromGroup = () => { return data; }, onSuccess: (_, { slug, username }) => { - queryClient.invalidateQueries(groupKeys.forGroupUserMemberships(slug)); - queryClient.invalidateQueries(userKeys.listUserGroupMemberships(username)); + queryClient.invalidateQueries({ queryKey: groupKeys.forGroupUserMemberships(slug) }); + queryClient.invalidateQueries({ queryKey: userKeys.listUserGroupMemberships(username) }); } }); }; diff --git a/frontend-v2/src/hooks/api/groups/queries.tsx b/frontend-v2/src/hooks/api/groups/queries.tsx index dc3791db7..eb10085bc 100644 --- a/frontend-v2/src/hooks/api/groups/queries.tsx +++ b/frontend-v2/src/hooks/api/groups/queries.tsx @@ -60,7 +60,7 @@ export const useListGroupUsers = ({ filter }), enabled: Boolean(groupSlug), - keepPreviousData: true, + placeholderData: (previousData) => previousData, queryFn: async () => { const params = new URLSearchParams({ offset: String(offset), diff --git a/frontend-v2/src/hooks/api/identities/mutations.tsx b/frontend-v2/src/hooks/api/identities/mutations.tsx index 5efc69cad..42de92e71 100644 --- a/frontend-v2/src/hooks/api/identities/mutations.tsx +++ b/frontend-v2/src/hooks/api/identities/mutations.tsx @@ -63,7 +63,9 @@ export const useCreateIdentity = () => { return identity; }, onSuccess: (_, { organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); } }); }; @@ -83,8 +85,10 @@ export const useUpdateIdentity = () => { return identity; }, onSuccess: (_, { organizationId, identityId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); } }); }; @@ -99,7 +103,9 @@ export const useDeleteIdentity = () => { return identity; }, onSuccess: (_, { organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); } }); }; @@ -129,9 +135,13 @@ export const useAddIdentityUniversalAuth = () => { return identityUniversalAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityUniversalAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityUniversalAuth(identityId) + }); } }); }; @@ -159,9 +169,13 @@ export const useUpdateIdentityUniversalAuth = () => { return identityUniversalAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityUniversalAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityUniversalAuth(identityId) + }); } }); }; @@ -176,9 +190,13 @@ export const useDeleteIdentityUniversalAuth = () => { return identityUniversalAuth; }, onSuccess: (_, { organizationId, identityId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityUniversalAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityUniversalAuth(identityId) + }); } }); }; @@ -202,9 +220,9 @@ export const useCreateIdentityUniversalAuthClientSecret = () => { return data; }, onSuccess: (_, { identityId }) => { - queryClient.invalidateQueries( - identitiesKeys.getIdentityUniversalAuthClientSecrets(identityId) - ); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityUniversalAuthClientSecrets(identityId) + }); } }); }; @@ -221,9 +239,9 @@ export const useRevokeIdentityUniversalAuthClientSecret = () => { return clientSecretData; }, onSuccess: (_, { identityId }) => { - queryClient.invalidateQueries( - identitiesKeys.getIdentityUniversalAuthClientSecrets(identityId) - ); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityUniversalAuthClientSecrets(identityId) + }); } }); }; @@ -261,9 +279,11 @@ export const useAddIdentityGcpAuth = () => { return identityGcpAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityGcpAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityGcpAuth(identityId) }); } }); }; @@ -301,9 +321,11 @@ export const useUpdateIdentityGcpAuth = () => { return identityGcpAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityGcpAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityGcpAuth(identityId) }); } }); }; @@ -318,9 +340,11 @@ export const useDeleteIdentityGcpAuth = () => { return identityGcpAuth; }, onSuccess: (_, { organizationId, identityId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityGcpAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityGcpAuth(identityId) }); } }); }; @@ -356,9 +380,11 @@ export const useAddIdentityAwsAuth = () => { return identityAwsAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityAwsAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityAwsAuth(identityId) }); } }); }; @@ -394,9 +420,11 @@ export const useUpdateIdentityAwsAuth = () => { return identityAwsAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityAwsAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityAwsAuth(identityId) }); } }); }; @@ -411,9 +439,11 @@ export const useDeleteIdentityAwsAuth = () => { return identityAwsAuth; }, onSuccess: (_, { organizationId, identityId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityAwsAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityAwsAuth(identityId) }); } }); }; @@ -455,9 +485,11 @@ export const useUpdateIdentityOidcAuth = () => { return identityOidcAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityOidcAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityOidcAuth(identityId) }); } }); }; @@ -499,9 +531,11 @@ export const useAddIdentityOidcAuth = () => { return identityOidcAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityOidcAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityOidcAuth(identityId) }); } }); }; @@ -516,9 +550,11 @@ export const useDeleteIdentityOidcAuth = () => { return identityOidcAuth; }, onSuccess: (_, { organizationId, identityId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityOidcAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityOidcAuth(identityId) }); } }); }; @@ -563,9 +599,11 @@ export const useUpdateIdentityJwtAuth = () => { return identityJwtAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityJwtAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityJwtAuth(identityId) }); } }); }; @@ -611,9 +649,11 @@ export const useAddIdentityJwtAuth = () => { return identityJwtAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityJwtAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityJwtAuth(identityId) }); } }); }; @@ -628,9 +668,11 @@ export const useDeleteIdentityJwtAuth = () => { return identityJwtAuth; }, onSuccess: (_, { organizationId, identityId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityJwtAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityJwtAuth(identityId) }); } }); }; @@ -666,9 +708,13 @@ export const useAddIdentityAzureAuth = () => { return identityAzureAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityKubernetesAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityKubernetesAuth(identityId) + }); } }); }; @@ -710,9 +756,11 @@ export const useAddIdentityKubernetesAuth = () => { return identityKubernetesAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityAzureAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityAzureAuth(identityId) }); } }); }; @@ -748,9 +796,11 @@ export const useUpdateIdentityAzureAuth = () => { return identityAzureAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityAzureAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityAzureAuth(identityId) }); } }); }; @@ -765,9 +815,11 @@ export const useDeleteIdentityAzureAuth = () => { return identityAzureAuth; }, onSuccess: (_, { organizationId, identityId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityAzureAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityAzureAuth(identityId) }); } }); }; @@ -809,9 +861,13 @@ export const useUpdateIdentityKubernetesAuth = () => { return identityKubernetesAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityKubernetesAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityKubernetesAuth(identityId) + }); } }); }; @@ -826,9 +882,13 @@ export const useDeleteIdentityKubernetesAuth = () => { return identityKubernetesAuth; }, onSuccess: (_, { organizationId, identityId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityKubernetesAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityKubernetesAuth(identityId) + }); } }); }; @@ -858,9 +918,13 @@ export const useAddIdentityTokenAuth = () => { return identityTokenAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityUniversalAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityUniversalAuth(identityId) + }); } }); }; @@ -890,9 +954,13 @@ export const useUpdateIdentityTokenAuth = () => { return identityTokenAuth; }, onSuccess: (_, { identityId, organizationId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityUniversalAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityUniversalAuth(identityId) + }); } }); }; @@ -907,9 +975,11 @@ export const useDeleteIdentityTokenAuth = () => { return identityTokenAuth; }, onSuccess: (_, { organizationId, identityId }) => { - queryClient.invalidateQueries(organizationKeys.getOrgIdentityMemberships(organizationId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityById(identityId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityTokenAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgIdentityMemberships(organizationId) + }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityById(identityId) }); + queryClient.invalidateQueries({ queryKey: identitiesKeys.getIdentityTokenAuth(identityId) }); } }); }; @@ -928,7 +998,9 @@ export const useCreateTokenIdentityTokenAuth = () => { return data; }, onSuccess: (_, { identityId }) => { - queryClient.invalidateQueries(identitiesKeys.getIdentityTokensTokenAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityTokensTokenAuth(identityId) + }); } }); }; @@ -949,7 +1021,9 @@ export const useUpdateIdentityTokenAuthToken = () => { return token; }, onSuccess: (_, { identityId }) => { - queryClient.invalidateQueries(identitiesKeys.getIdentityTokensTokenAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityTokensTokenAuth(identityId) + }); } }); }; @@ -965,7 +1039,9 @@ export const useRevokeIdentityTokenAuthToken = () => { return data; }, onSuccess: (_, { identityId }) => { - queryClient.invalidateQueries(identitiesKeys.getIdentityTokensTokenAuth(identityId)); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityTokensTokenAuth(identityId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/identities/queries.tsx b/frontend-v2/src/hooks/api/identities/queries.tsx index 49136614e..005882359 100644 --- a/frontend-v2/src/hooks/api/identities/queries.tsx +++ b/frontend-v2/src/hooks/api/identities/queries.tsx @@ -1,6 +1,7 @@ -import { useQuery, UseQueryOptions } from "@tanstack/react-query"; +import { useQuery } from "@tanstack/react-query"; import { apiRequest } from "@app/config/request"; +import { TReactQueryOptions } from "@app/types/reactQuery"; import { ClientSecretData, @@ -69,12 +70,7 @@ export const useGetIdentityProjectMemberships = (identityId: string) => { export const useGetIdentityUniversalAuth = ( identityId: string, - options?: UseQueryOptions< - IdentityUniversalAuth, - unknown, - IdentityUniversalAuth, - ReturnType - > + options?: TReactQueryOptions["options"] ) => { return useQuery({ queryKey: identitiesKeys.getIdentityUniversalAuth(identityId), @@ -86,7 +82,7 @@ export const useGetIdentityUniversalAuth = ( ); return identityUniversalAuth; }, - cacheTime: 0, + gcTime: 0, staleTime: 0, ...options, enabled: Boolean(identityId) && (options?.enabled ?? true) @@ -110,12 +106,7 @@ export const useGetIdentityUniversalAuthClientSecrets = (identityId: string) => export const useGetIdentityGcpAuth = ( identityId: string, - options?: UseQueryOptions< - IdentityGcpAuth, - unknown, - IdentityGcpAuth, - ReturnType - > + options?: TReactQueryOptions["options"] ) => { return useQuery({ queryKey: identitiesKeys.getIdentityGcpAuth(identityId), @@ -128,7 +119,7 @@ export const useGetIdentityGcpAuth = ( return identityGcpAuth; }, staleTime: 0, - cacheTime: 0, + gcTime: 0, ...options, enabled: Boolean(identityId) && (options?.enabled ?? true) }); @@ -136,12 +127,7 @@ export const useGetIdentityGcpAuth = ( export const useGetIdentityAwsAuth = ( identityId: string, - options?: UseQueryOptions< - IdentityAwsAuth, - unknown, - IdentityAwsAuth, - ReturnType - > + options?: TReactQueryOptions["options"] ) => { return useQuery({ queryKey: identitiesKeys.getIdentityAwsAuth(identityId), @@ -154,7 +140,7 @@ export const useGetIdentityAwsAuth = ( return identityAwsAuth; }, staleTime: 0, - cacheTime: 0, + gcTime: 0, ...options, enabled: Boolean(identityId) && (options?.enabled ?? true) }); @@ -162,12 +148,7 @@ export const useGetIdentityAwsAuth = ( export const useGetIdentityAzureAuth = ( identityId: string, - options?: UseQueryOptions< - IdentityAzureAuth, - unknown, - IdentityAzureAuth, - ReturnType - > + options?: TReactQueryOptions["options"] ) => { return useQuery({ queryKey: identitiesKeys.getIdentityAzureAuth(identityId), @@ -180,7 +161,7 @@ export const useGetIdentityAzureAuth = ( return identityAzureAuth; }, staleTime: 0, - cacheTime: 0, + gcTime: 0, ...options, enabled: Boolean(identityId) && (options?.enabled ?? true) }); @@ -188,12 +169,7 @@ export const useGetIdentityAzureAuth = ( export const useGetIdentityKubernetesAuth = ( identityId: string, - options?: UseQueryOptions< - IdentityKubernetesAuth, - unknown, - IdentityKubernetesAuth, - ReturnType - > + options?: TReactQueryOptions["options"] ) => { return useQuery({ queryKey: identitiesKeys.getIdentityKubernetesAuth(identityId), @@ -206,7 +182,7 @@ export const useGetIdentityKubernetesAuth = ( return identityKubernetesAuth; }, staleTime: 0, - cacheTime: 0, + gcTime: 0, ...options, enabled: Boolean(identityId) && (options?.enabled ?? true) }); @@ -214,12 +190,7 @@ export const useGetIdentityKubernetesAuth = ( export const useGetIdentityTokenAuth = ( identityId: string, - options?: UseQueryOptions< - IdentityTokenAuth, - unknown, - IdentityTokenAuth, - ReturnType - > + options?: TReactQueryOptions["options"] ) => { return useQuery({ queryKey: identitiesKeys.getIdentityTokenAuth(identityId), @@ -232,7 +203,7 @@ export const useGetIdentityTokenAuth = ( return identityTokenAuth; }, staleTime: 0, - cacheTime: 0, + gcTime: 0, ...options, enabled: Boolean(identityId) && (options?.enabled ?? true) }); @@ -255,12 +226,7 @@ export const useGetIdentityTokensTokenAuth = (identityId: string) => { export const useGetIdentityOidcAuth = ( identityId: string, - options?: UseQueryOptions< - IdentityOidcAuth, - unknown, - IdentityOidcAuth, - ReturnType - > + options?: TReactQueryOptions["options"] ) => { return useQuery({ queryKey: identitiesKeys.getIdentityOidcAuth(identityId), @@ -273,7 +239,7 @@ export const useGetIdentityOidcAuth = ( return identityOidcAuth; }, staleTime: 0, - cacheTime: 0, + gcTime: 0, ...options, enabled: Boolean(identityId) && (options?.enabled ?? true) }); @@ -281,12 +247,7 @@ export const useGetIdentityOidcAuth = ( export const useGetIdentityJwtAuth = ( identityId: string, - options?: UseQueryOptions< - IdentityJwtAuth, - unknown, - IdentityJwtAuth, - ReturnType - > + options?: TReactQueryOptions["options"] ) => { return useQuery({ queryKey: identitiesKeys.getIdentityJwtAuth(identityId), @@ -300,7 +261,7 @@ export const useGetIdentityJwtAuth = ( return identityJwtAuth; }, staleTime: 0, - cacheTime: 0, + gcTime: 0, ...options, enabled: Boolean(identityId) && (options?.enabled ?? true) }); diff --git a/frontend-v2/src/hooks/api/identityProjectAdditionalPrivilege/mutation.tsx b/frontend-v2/src/hooks/api/identityProjectAdditionalPrivilege/mutation.tsx index 167eea73e..96b0c420a 100644 --- a/frontend-v2/src/hooks/api/identityProjectAdditionalPrivilege/mutation.tsx +++ b/frontend-v2/src/hooks/api/identityProjectAdditionalPrivilege/mutation.tsx @@ -19,7 +19,9 @@ export const useCreateIdentityProjectAdditionalPrivilege = () => { return data.privilege; }, onSuccess: (_, { projectId, identityId }) => { - queryClient.invalidateQueries(identitiyProjectPrivilegeKeys.list({ projectId, identityId })); + queryClient.invalidateQueries({ + queryKey: identitiyProjectPrivilegeKeys.list({ projectId, identityId }) + }); } }); }; @@ -43,7 +45,9 @@ export const useUpdateIdentityProjectAdditionalPrivilege = () => { return res.privilege; }, onSuccess: (_, { projectId, identityId }) => { - queryClient.invalidateQueries(identitiyProjectPrivilegeKeys.list({ projectId, identityId })); + queryClient.invalidateQueries({ + queryKey: identitiyProjectPrivilegeKeys.list({ projectId, identityId }) + }); } }); }; @@ -66,7 +70,9 @@ export const useDeleteIdentityProjectAdditionalPrivilege = () => { return data.privilege; }, onSuccess: (_, { projectId, identityId }) => { - queryClient.invalidateQueries(identitiyProjectPrivilegeKeys.list({ projectId, identityId })); + queryClient.invalidateQueries({ + queryKey: identitiyProjectPrivilegeKeys.list({ projectId, identityId }) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/incidentContacts/queries.tsx b/frontend-v2/src/hooks/api/incidentContacts/queries.tsx index 04611879c..d79117e53 100644 --- a/frontend-v2/src/hooks/api/incidentContacts/queries.tsx +++ b/frontend-v2/src/hooks/api/incidentContacts/queries.tsx @@ -33,7 +33,7 @@ export const useAddIncidentContact = () => { return data; }, onSuccess: (_, { orgId }) => { - queryClient.invalidateQueries(incidentContactKeys.getAllContact(orgId)); + queryClient.invalidateQueries({ queryKey: incidentContactKeys.getAllContact(orgId) }); } }); }; @@ -49,7 +49,7 @@ export const useDeleteIncidentContact = () => { return data; }, onSuccess: (_, { orgId }) => { - queryClient.invalidateQueries(incidentContactKeys.getAllContact(orgId)); + queryClient.invalidateQueries({ queryKey: incidentContactKeys.getAllContact(orgId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/integrationAuth/queries.tsx b/frontend-v2/src/hooks/api/integrationAuth/queries.tsx index e43f4cc68..813fa4cb8 100644 --- a/frontend-v2/src/hooks/api/integrationAuth/queries.tsx +++ b/frontend-v2/src/hooks/api/integrationAuth/queries.tsx @@ -914,7 +914,9 @@ export const useAuthorizeIntegration = () => { return integrationAuth; }, onSuccess: (res) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceAuthorization(res.workspace)); + queryClient.invalidateQueries({ + queryKey: { queryKey: workspaceKeys.getWorkspaceAuthorization(res.workspace) } + }); } }); }; @@ -958,7 +960,9 @@ export const useSaveIntegrationAccessToken = () => { return integrationAuth; }, onSuccess: (res) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceAuthorization(res.workspace)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceAuthorization(res.workspace) + }); } }); }; @@ -975,8 +979,12 @@ export const useDeleteIntegrationAuths = () => { })}` ), onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceAuthorization(workspaceId)); - queryClient.invalidateQueries(workspaceKeys.getWorkspaceIntegrations(workspaceId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceAuthorization(workspaceId) + }); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceIntegrations(workspaceId) + }); } }); }; @@ -988,8 +996,12 @@ export const useDeleteIntegrationAuth = () => { return useMutation({ mutationFn: ({ id }) => apiRequest.delete(`/api/v1/integration-auth/${id}`), onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceAuthorization(workspaceId)); - queryClient.invalidateQueries(workspaceKeys.getWorkspaceIntegrations(workspaceId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceAuthorization(workspaceId) + }); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceIntegrations(workspaceId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/integrations/queries.tsx b/frontend-v2/src/hooks/api/integrations/queries.tsx index 414cf691c..2b90d5e9a 100644 --- a/frontend-v2/src/hooks/api/integrations/queries.tsx +++ b/frontend-v2/src/hooks/api/integrations/queries.tsx @@ -114,7 +114,9 @@ export const useCreateIntegration = () => { return integration; }, onSuccess: (res) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceIntegrations(res.workspace)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceIntegrations(res.workspace) + }); } }); }; @@ -132,8 +134,12 @@ export const useDeleteIntegration = () => { `/api/v1/integration/${id}?shouldDeleteIntegrationSecrets=${shouldDeleteIntegrationSecrets}` ), onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceIntegrations(workspaceId)); - queryClient.invalidateQueries(workspaceKeys.getWorkspaceAuthorization(workspaceId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceIntegrations(workspaceId) + }); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceAuthorization(workspaceId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/kms/mutations.tsx b/frontend-v2/src/hooks/api/kms/mutations.tsx index b87c495c9..2bf27bf6a 100644 --- a/frontend-v2/src/hooks/api/kms/mutations.tsx +++ b/frontend-v2/src/hooks/api/kms/mutations.tsx @@ -24,7 +24,7 @@ export const useAddExternalKms = (orgId: string) => { return data; }, onSuccess: () => { - queryClient.invalidateQueries(kmsKeys.getExternalKmsList(orgId)); + queryClient.invalidateQueries({ queryKey: kmsKeys.getExternalKmsList(orgId) }); } }); }; @@ -49,8 +49,8 @@ export const useUpdateExternalKms = (orgId: string) => { return data; }, onSuccess: (_, { kmsId }) => { - queryClient.invalidateQueries(kmsKeys.getExternalKmsList(orgId)); - queryClient.invalidateQueries(kmsKeys.getExternalKmsById(kmsId)); + queryClient.invalidateQueries({ queryKey: kmsKeys.getExternalKmsList(orgId) }); + queryClient.invalidateQueries({ queryKey: kmsKeys.getExternalKmsById(kmsId) }); } }); }; @@ -64,7 +64,7 @@ export const useRemoveExternalKms = (orgId: string) => { return data; }, onSuccess: () => { - queryClient.invalidateQueries(kmsKeys.getExternalKmsList(orgId)); + queryClient.invalidateQueries({ queryKey: kmsKeys.getExternalKmsList(orgId) }); } }); }; @@ -82,7 +82,7 @@ export const useUpdateProjectKms = (projectId: string) => { return data; }, onSuccess: () => { - queryClient.invalidateQueries(kmsKeys.getActiveProjectKms(projectId)); + queryClient.invalidateQueries({ queryKey: kmsKeys.getActiveProjectKms(projectId) }); } }); }; @@ -98,7 +98,7 @@ export const useLoadProjectKmsBackup = (projectId: string) => { return data; }, onSuccess: () => { - queryClient.invalidateQueries(kmsKeys.getActiveProjectKms(projectId)); + queryClient.invalidateQueries({ queryKey: kmsKeys.getActiveProjectKms(projectId) }); } }); }; @@ -139,7 +139,7 @@ export const useExternalKmsFetchGcpKeys = (orgId: string) => { return data; }, onSuccess: () => { - queryClient.invalidateQueries(kmsKeys.getExternalKmsList(orgId)); + queryClient.invalidateQueries({ queryKey: kmsKeys.getExternalKmsList(orgId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/ldapConfig/mutations.tsx b/frontend-v2/src/hooks/api/ldapConfig/mutations.tsx index 2014f52bd..6bab003cb 100644 --- a/frontend-v2/src/hooks/api/ldapConfig/mutations.tsx +++ b/frontend-v2/src/hooks/api/ldapConfig/mutations.tsx @@ -49,7 +49,7 @@ export const useCreateLDAPConfig = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(ldapConfigKeys.getLDAPConfig(dto.organizationId)); + queryClient.invalidateQueries({ queryKey: ldapConfigKeys.getLDAPConfig(dto.organizationId) }); } }); }; @@ -99,7 +99,7 @@ export const useUpdateLDAPConfig = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(ldapConfigKeys.getLDAPConfig(dto.organizationId)); + queryClient.invalidateQueries({ queryKey: ldapConfigKeys.getLDAPConfig(dto.organizationId) }); } }); }; @@ -123,7 +123,7 @@ export const useCreateLDAPGroupMapping = () => { return data; }, onSuccess(_, { ldapConfigId }) { - queryClient.invalidateQueries(ldapConfigKeys.getLDAPGroupMaps(ldapConfigId)); + queryClient.invalidateQueries({ queryKey: ldapConfigKeys.getLDAPGroupMaps(ldapConfigId) }); } }); }; @@ -144,7 +144,7 @@ export const useDeleteLDAPGroupMapping = () => { return data; }, onSuccess(_, { ldapConfigId }) { - queryClient.invalidateQueries(ldapConfigKeys.getLDAPGroupMaps(ldapConfigId)); + queryClient.invalidateQueries({ queryKey: ldapConfigKeys.getLDAPGroupMaps(ldapConfigId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/migration/mutations.tsx b/frontend-v2/src/hooks/api/migration/mutations.tsx index f40fbb05f..c2b903f8a 100644 --- a/frontend-v2/src/hooks/api/migration/mutations.tsx +++ b/frontend-v2/src/hooks/api/migration/mutations.tsx @@ -34,7 +34,9 @@ export const useImportEnvKey = () => { } }, onSuccess: () => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/oidcConfig/mutations.tsx b/frontend-v2/src/hooks/api/oidcConfig/mutations.tsx index 9f57c0332..b29ebd333 100644 --- a/frontend-v2/src/hooks/api/oidcConfig/mutations.tsx +++ b/frontend-v2/src/hooks/api/oidcConfig/mutations.tsx @@ -53,8 +53,8 @@ export const useUpdateOIDCConfig = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(oidcConfigKeys.getOIDCConfig(dto.orgSlug)); - queryClient.invalidateQueries(organizationKeys.getUserOrganizations); + queryClient.invalidateQueries({ queryKey: oidcConfigKeys.getOIDCConfig(dto.orgSlug) }); + queryClient.invalidateQueries({ queryKey: organizationKeys.getUserOrganizations }); } }); }; @@ -107,7 +107,7 @@ export const useCreateOIDCConfig = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(oidcConfigKeys.getOIDCConfig(dto.orgSlug)); + queryClient.invalidateQueries({ queryKey: oidcConfigKeys.getOIDCConfig(dto.orgSlug) }); } }); }; diff --git a/frontend-v2/src/hooks/api/organization/queries.tsx b/frontend-v2/src/hooks/api/organization/queries.tsx index a99be251f..2eddda50a 100644 --- a/frontend-v2/src/hooks/api/organization/queries.tsx +++ b/frontend-v2/src/hooks/api/organization/queries.tsx @@ -92,7 +92,7 @@ export const useCreateOrg = (options: { invalidate: boolean } = { invalidate: tr }, onSuccess: () => { if (options?.invalidate) { - queryClient.invalidateQueries(organizationKeys.getUserOrganizations); + queryClient.invalidateQueries({ queryKey: organizationKeys.getUserOrganizations }); } } }); @@ -122,7 +122,7 @@ export const useUpdateOrg = () => { }); }, onSuccess: () => { - queryClient.invalidateQueries(organizationKeys.getUserOrganizations); + queryClient.invalidateQueries({ queryKey: organizationKeys.getUserOrganizations }); } }); }; @@ -226,7 +226,9 @@ export const useUpdateOrgBillingDetails = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(organizationKeys.getOrgBillingDetails(dto.organizationId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgBillingDetails(dto.organizationId) + }); } }); }; @@ -271,7 +273,9 @@ export const useAddOrgPmtMethod = () => { return url; }, onSuccess(_, dto) { - queryClient.invalidateQueries(organizationKeys.getOrgPmtMethods(dto.organizationId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgPmtMethods(dto.organizationId) + }); } }); }; @@ -294,7 +298,9 @@ export const useDeleteOrgPmtMethod = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(organizationKeys.getOrgPmtMethods(dto.organizationId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgPmtMethods(dto.organizationId) + }); } }); }; @@ -337,7 +343,9 @@ export const useAddOrgTaxId = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(organizationKeys.getOrgTaxIds(dto.organizationId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgTaxIds(dto.organizationId) + }); } }); }; @@ -354,7 +362,9 @@ export const useDeleteOrgTaxId = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(organizationKeys.getOrgTaxIds(dto.organizationId)); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgTaxIds(dto.organizationId) + }); } }); }; @@ -461,20 +471,34 @@ export const useDeleteOrgById = () => { return organization; }, onSuccess(_, dto) { - queryClient.invalidateQueries(organizationKeys.getUserOrganizations); - queryClient.invalidateQueries(organizationKeys.getOrgPlanBillingInfo(dto.organizationId)); - queryClient.invalidateQueries(organizationKeys.getOrgPlanTable(dto.organizationId)); - queryClient.invalidateQueries( - organizationKeys.getOrgPlansTable(dto.organizationId, "monthly") - ); // You might need to invalidate for 'yearly' as well. - queryClient.invalidateQueries( - organizationKeys.getOrgPlansTable(dto.organizationId, "yearly") - ); - queryClient.invalidateQueries(organizationKeys.getOrgBillingDetails(dto.organizationId)); - queryClient.invalidateQueries(organizationKeys.getOrgPmtMethods(dto.organizationId)); - queryClient.invalidateQueries(organizationKeys.getOrgTaxIds(dto.organizationId)); - queryClient.invalidateQueries(organizationKeys.getOrgInvoices(dto.organizationId)); - queryClient.invalidateQueries(organizationKeys.getOrgLicenses(dto.organizationId)); + queryClient.invalidateQueries({ queryKey: organizationKeys.getUserOrganizations }); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgPlanBillingInfo(dto.organizationId) + }); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgPlanTable(dto.organizationId) + }); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgPlansTable(dto.organizationId, "monthly") + }); // You might need to invalidate for 'yearly' as well. + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgPlansTable(dto.organizationId, "yearly") + }); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgBillingDetails(dto.organizationId) + }); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgPmtMethods(dto.organizationId) + }); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgTaxIds(dto.organizationId) + }); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgInvoices(dto.organizationId) + }); + queryClient.invalidateQueries({ + queryKey: organizationKeys.getOrgLicenses(dto.organizationId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/pkiAlerts/mutations.tsx b/frontend-v2/src/hooks/api/pkiAlerts/mutations.tsx index 1a5159df7..34397c141 100644 --- a/frontend-v2/src/hooks/api/pkiAlerts/mutations.tsx +++ b/frontend-v2/src/hooks/api/pkiAlerts/mutations.tsx @@ -14,7 +14,7 @@ export const useCreatePkiAlert = () => { return alert; }, onSuccess: (_, { projectId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspacePkiAlerts(projectId)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspacePkiAlerts(projectId) }); } }); }; @@ -30,8 +30,8 @@ export const useUpdatePkiAlert = () => { return alert; }, onSuccess: (_, { projectId, alertId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspacePkiAlerts(projectId)); - queryClient.invalidateQueries(pkiAlertKeys.getPkiAlertById(alertId)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspacePkiAlerts(projectId) }); + queryClient.invalidateQueries({ queryKey: pkiAlertKeys.getPkiAlertById(alertId) }); } }); }; @@ -44,8 +44,8 @@ export const useDeletePkiAlert = () => { return alert; }, onSuccess: (_, { projectId, alertId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspacePkiAlerts(projectId)); - queryClient.invalidateQueries(pkiAlertKeys.getPkiAlertById(alertId)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspacePkiAlerts(projectId) }); + queryClient.invalidateQueries({ queryKey: pkiAlertKeys.getPkiAlertById(alertId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/pkiCollections/mutations.tsx b/frontend-v2/src/hooks/api/pkiCollections/mutations.tsx index 8451befcf..af1f0af18 100644 --- a/frontend-v2/src/hooks/api/pkiCollections/mutations.tsx +++ b/frontend-v2/src/hooks/api/pkiCollections/mutations.tsx @@ -25,7 +25,9 @@ export const useCreatePkiCollection = () => { return pkiCollection; }, onSuccess: (_, { projectId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspacePkiCollections(projectId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspacePkiCollections(projectId) + }); } }); }; @@ -41,8 +43,12 @@ export const useUpdatePkiCollection = () => { return pkiCollection; }, onSuccess: (_, { projectId, collectionId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspacePkiCollections(projectId)); - queryClient.invalidateQueries(pkiCollectionKeys.getPkiCollectionById(collectionId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspacePkiCollections(projectId) + }); + queryClient.invalidateQueries({ + queryKey: pkiCollectionKeys.getPkiCollectionById(collectionId) + }); } }); }; @@ -57,8 +63,12 @@ export const useDeletePkiCollection = () => { return pkiCollection; }, onSuccess: (_, { projectId, collectionId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspacePkiCollections(projectId)); - queryClient.invalidateQueries(pkiCollectionKeys.getPkiCollectionById(collectionId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspacePkiCollections(projectId) + }); + queryClient.invalidateQueries({ + queryKey: pkiCollectionKeys.getPkiCollectionById(collectionId) + }); } }); }; @@ -77,7 +87,9 @@ export const useAddItemToPkiCollection = () => { return pkiCollectionItem; }, onSuccess: (_, { collectionId }) => { - queryClient.invalidateQueries(pkiCollectionKeys.getPkiCollectionItems(collectionId)); + queryClient.invalidateQueries({ + queryKey: pkiCollectionKeys.getPkiCollectionItems(collectionId) + }); } }); }; @@ -92,7 +104,9 @@ export const useRemoveItemFromPkiCollection = () => { return pkiCollectionItem; }, onSuccess: (_, { collectionId }) => { - queryClient.invalidateQueries(pkiCollectionKeys.getPkiCollectionItems(collectionId)); + queryClient.invalidateQueries({ + queryKey: pkiCollectionKeys.getPkiCollectionItems(collectionId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/projectTemplates/mutations.tsx b/frontend-v2/src/hooks/api/projectTemplates/mutations.tsx index 7056f738e..fdffec1b7 100644 --- a/frontend-v2/src/hooks/api/projectTemplates/mutations.tsx +++ b/frontend-v2/src/hooks/api/projectTemplates/mutations.tsx @@ -20,7 +20,7 @@ export const useCreateProjectTemplate = () => { return data.projectTemplate; }, - onSuccess: () => queryClient.invalidateQueries(projectTemplateKeys.list()) + onSuccess: () => queryClient.invalidateQueries({ queryKey: projectTemplateKeys.list() }) }); }; @@ -36,8 +36,8 @@ export const useUpdateProjectTemplate = () => { return data.projectTemplate; }, onSuccess: (_, { templateId }) => { - queryClient.invalidateQueries(projectTemplateKeys.list()); - queryClient.invalidateQueries(projectTemplateKeys.byId(templateId)); + queryClient.invalidateQueries({ queryKey: projectTemplateKeys.list() }); + queryClient.invalidateQueries({ queryKey: projectTemplateKeys.byId(templateId) }); } }); }; @@ -51,8 +51,8 @@ export const useDeleteProjectTemplate = () => { return data; }, onSuccess: (_, { templateId }) => { - queryClient.invalidateQueries(projectTemplateKeys.list()); - queryClient.invalidateQueries(projectTemplateKeys.byId(templateId)); + queryClient.invalidateQueries({ queryKey: projectTemplateKeys.list() }); + queryClient.invalidateQueries({ queryKey: projectTemplateKeys.byId(templateId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/projectUserAdditionalPrivilege/mutation.tsx b/frontend-v2/src/hooks/api/projectUserAdditionalPrivilege/mutation.tsx index 32ecc36d4..79d7d7f23 100644 --- a/frontend-v2/src/hooks/api/projectUserAdditionalPrivilege/mutation.tsx +++ b/frontend-v2/src/hooks/api/projectUserAdditionalPrivilege/mutation.tsx @@ -19,7 +19,9 @@ export const useCreateProjectUserAdditionalPrivilege = () => { return data.privilege; }, onSuccess: (_, { projectMembershipId }) => { - queryClient.invalidateQueries(projectUserPrivilegeKeys.list(projectMembershipId)); + queryClient.invalidateQueries({ + queryKey: projectUserPrivilegeKeys.list(projectMembershipId) + }); } }); }; @@ -36,7 +38,9 @@ export const useUpdateProjectUserAdditionalPrivilege = () => { return data.privilege; }, onSuccess: (_, { projectMembershipId }) => { - queryClient.invalidateQueries(projectUserPrivilegeKeys.list(projectMembershipId)); + queryClient.invalidateQueries({ + queryKey: projectUserPrivilegeKeys.list(projectMembershipId) + }); } }); }; @@ -52,7 +56,9 @@ export const useDeleteProjectUserAdditionalPrivilege = () => { return data.privilege; }, onSuccess: (_, { projectMembershipId }) => { - queryClient.invalidateQueries(projectUserPrivilegeKeys.list(projectMembershipId)); + queryClient.invalidateQueries({ + queryKey: projectUserPrivilegeKeys.list(projectMembershipId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/rateLimit/mutation.ts b/frontend-v2/src/hooks/api/rateLimit/mutation.ts index 2bc79b81d..d2aea631b 100644 --- a/frontend-v2/src/hooks/api/rateLimit/mutation.ts +++ b/frontend-v2/src/hooks/api/rateLimit/mutation.ts @@ -15,7 +15,7 @@ export const useUpdateRateLimit = () => { }, onSuccess: (data) => { queryClient.setQueryData(rateLimitQueryKeys.rateLimit(), data); - queryClient.invalidateQueries(rateLimitQueryKeys.rateLimit()); + queryClient.invalidateQueries({ queryKey: rateLimitQueryKeys.rateLimit() }); } }); }; diff --git a/frontend-v2/src/hooks/api/roles/mutation.tsx b/frontend-v2/src/hooks/api/roles/mutation.tsx index 80921063d..8d662f993 100644 --- a/frontend-v2/src/hooks/api/roles/mutation.tsx +++ b/frontend-v2/src/hooks/api/roles/mutation.tsx @@ -26,7 +26,7 @@ export const useCreateProjectRole = () => { return role; }, onSuccess: (_, { projectId }) => { - queryClient.invalidateQueries(roleQueryKeys.getProjectRoles(projectId)); + queryClient.invalidateQueries({ queryKey: roleQueryKeys.getProjectRoles(projectId) }); } }); }; @@ -42,9 +42,11 @@ export const useUpdateProjectRole = () => { return role; }, onSuccess: (_, { projectId, slug }) => { - queryClient.invalidateQueries(roleQueryKeys.getProjectRoles(projectId)); + queryClient.invalidateQueries({ queryKey: roleQueryKeys.getProjectRoles(projectId) }); if (slug) { - queryClient.invalidateQueries(roleQueryKeys.getProjectRoleBySlug(projectId, slug)); + queryClient.invalidateQueries({ + queryKey: roleQueryKeys.getProjectRoleBySlug(projectId, slug) + }); } } }); @@ -60,7 +62,7 @@ export const useDeleteProjectRole = () => { return role; }, onSuccess: (_, { projectId }) => { - queryClient.invalidateQueries(roleQueryKeys.getProjectRoles(projectId)); + queryClient.invalidateQueries({ queryKey: roleQueryKeys.getProjectRoles(projectId) }); } }); }; @@ -80,7 +82,7 @@ export const useCreateOrgRole = () => { return role; }, onSuccess: (_, { orgId }) => { - queryClient.invalidateQueries(roleQueryKeys.getOrgRoles(orgId)); + queryClient.invalidateQueries({ queryKey: roleQueryKeys.getOrgRoles(orgId) }); } }); }; @@ -100,8 +102,8 @@ export const useUpdateOrgRole = () => { return role; }, onSuccess: (_, { id, orgId }) => { - queryClient.invalidateQueries(roleQueryKeys.getOrgRoles(orgId)); - queryClient.invalidateQueries(roleQueryKeys.getOrgRole(orgId, id)); + queryClient.invalidateQueries({ queryKey: roleQueryKeys.getOrgRoles(orgId) }); + queryClient.invalidateQueries({ queryKey: roleQueryKeys.getOrgRole(orgId, id) }); } }); }; @@ -120,8 +122,8 @@ export const useDeleteOrgRole = () => { return role; }, onSuccess: (_, { id, orgId }) => { - queryClient.invalidateQueries(roleQueryKeys.getOrgRoles(orgId)); - queryClient.invalidateQueries(roleQueryKeys.getOrgRole(orgId, id)); + queryClient.invalidateQueries({ queryKey: roleQueryKeys.getOrgRoles(orgId) }); + queryClient.invalidateQueries({ queryKey: roleQueryKeys.getOrgRole(orgId, id) }); } }); }; diff --git a/frontend-v2/src/hooks/api/scim/mutations.tsx b/frontend-v2/src/hooks/api/scim/mutations.tsx index 259b140c1..341ad0202 100644 --- a/frontend-v2/src/hooks/api/scim/mutations.tsx +++ b/frontend-v2/src/hooks/api/scim/mutations.tsx @@ -18,7 +18,7 @@ export const useCreateScimToken = () => { return data; }, onSuccess: (_, { organizationId }) => { - queryClient.invalidateQueries(scimKeys.getScimTokens(organizationId)); + queryClient.invalidateQueries({ queryKey: scimKeys.getScimTokens(organizationId) }); } }); }; @@ -31,7 +31,7 @@ export const useDeleteScimToken = () => { return data; }, onSuccess: (_, { organizationId }) => { - queryClient.invalidateQueries(scimKeys.getScimTokens(organizationId)); + queryClient.invalidateQueries({ queryKey: scimKeys.getScimTokens(organizationId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/secretApproval/mutation.tsx b/frontend-v2/src/hooks/api/secretApproval/mutation.tsx index 75fdfff87..f5ffad7b0 100644 --- a/frontend-v2/src/hooks/api/secretApproval/mutation.tsx +++ b/frontend-v2/src/hooks/api/secretApproval/mutation.tsx @@ -30,7 +30,9 @@ export const useCreateSecretApprovalPolicy = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(secretApprovalKeys.getApprovalPolicies(workspaceId)); + queryClient.invalidateQueries({ + queryKey: secretApprovalKeys.getApprovalPolicies(workspaceId) + }); } }); }; @@ -50,7 +52,9 @@ export const useUpdateSecretApprovalPolicy = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(secretApprovalKeys.getApprovalPolicies(workspaceId)); + queryClient.invalidateQueries({ + queryKey: secretApprovalKeys.getApprovalPolicies(workspaceId) + }); } }); }; @@ -64,7 +68,9 @@ export const useDeleteSecretApprovalPolicy = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(secretApprovalKeys.getApprovalPolicies(workspaceId)); + queryClient.invalidateQueries({ + queryKey: secretApprovalKeys.getApprovalPolicies(workspaceId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/secretApproval/queries.tsx b/frontend-v2/src/hooks/api/secretApproval/queries.tsx index ae90ff766..52c3743fb 100644 --- a/frontend-v2/src/hooks/api/secretApproval/queries.tsx +++ b/frontend-v2/src/hooks/api/secretApproval/queries.tsx @@ -1,6 +1,7 @@ -import { useQuery, UseQueryOptions } from "@tanstack/react-query"; +import { useQuery } from "@tanstack/react-query"; import { apiRequest } from "@app/config/request"; +import { TReactQueryOptions } from "@app/types/reactQuery"; import { TGetSecretApprovalPoliciesDTO, @@ -28,14 +29,7 @@ const fetchApprovalPolicies = async (workspaceId: string) => { export const useGetSecretApprovalPolicies = ({ workspaceId, options = {} -}: TGetSecretApprovalPoliciesDTO & { - options?: UseQueryOptions< - TSecretApprovalPolicy[], - unknown, - TSecretApprovalPolicy[], - ReturnType - >; -}) => +}: TGetSecretApprovalPoliciesDTO & TReactQueryOptions) => useQuery({ queryKey: secretApprovalKeys.getApprovalPolicies(workspaceId), queryFn: () => fetchApprovalPolicies(workspaceId), @@ -60,14 +54,7 @@ export const useGetSecretApprovalPolicyOfABoard = ({ secretPath = "/", environment, options = {} -}: TGetSecretApprovalPolicyOfBoardDTO & { - options?: UseQueryOptions< - TSecretApprovalPolicy, - unknown, - TSecretApprovalPolicy, - ReturnType - >; -}) => +}: TGetSecretApprovalPolicyOfBoardDTO & TReactQueryOptions) => useQuery({ queryKey: secretApprovalKeys.getApprovalPolicyOfABoard(workspaceId, environment, secretPath), queryFn: () => fetchApprovalPolicyOfABoard(workspaceId, environment, secretPath), diff --git a/frontend-v2/src/hooks/api/secretApprovalRequest/mutation.tsx b/frontend-v2/src/hooks/api/secretApprovalRequest/mutation.tsx index 0366bf7cb..ce584a85f 100644 --- a/frontend-v2/src/hooks/api/secretApprovalRequest/mutation.tsx +++ b/frontend-v2/src/hooks/api/secretApprovalRequest/mutation.tsx @@ -20,7 +20,7 @@ export const useUpdateSecretApprovalReviewStatus = () => { return data; }, onSuccess: (_, { id }) => { - queryClient.invalidateQueries(secretApprovalRequestKeys.detail({ id })); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.detail({ id }) }); } }); }; @@ -36,8 +36,8 @@ export const useUpdateSecretApprovalRequestStatus = () => { return data; }, onSuccess: (_, { id, workspaceId }) => { - queryClient.invalidateQueries(secretApprovalRequestKeys.detail({ id })); - queryClient.invalidateQueries(secretApprovalRequestKeys.count({ workspaceId })); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.detail({ id }) }); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.count({ workspaceId }) }); } }); }; @@ -53,9 +53,9 @@ export const usePerformSecretApprovalRequestMerge = () => { return data; }, onSuccess: (_, { id, workspaceId }) => { - queryClient.invalidateQueries(secretApprovalRequestKeys.detail({ id })); - queryClient.invalidateQueries(secretApprovalRequestKeys.list({ workspaceId })); - queryClient.invalidateQueries(secretApprovalRequestKeys.count({ workspaceId })); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.detail({ id }) }); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.list({ workspaceId }) }); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.count({ workspaceId }) }); } }); }; diff --git a/frontend-v2/src/hooks/api/secretApprovalRequest/queries.tsx b/frontend-v2/src/hooks/api/secretApprovalRequest/queries.tsx index a15316018..74acf744b 100644 --- a/frontend-v2/src/hooks/api/secretApprovalRequest/queries.tsx +++ b/frontend-v2/src/hooks/api/secretApprovalRequest/queries.tsx @@ -1,16 +1,12 @@ /* eslint-disable no-param-reassign */ -import { - useInfiniteQuery, - UseInfiniteQueryOptions, - useQuery, - UseQueryOptions -} from "@tanstack/react-query"; +import { useInfiniteQuery, useQuery, UseQueryOptions } from "@tanstack/react-query"; import { decryptAssymmetric, decryptSymmetric } from "@app/components/utilities/cryptography/crypto"; import { apiRequest } from "@app/config/request"; +import { TReactQueryOptions } from "@app/types/reactQuery"; import { UserWsKeyPair } from "../keys/types"; import { EncryptedSecret, SecretType, SecretV3RawSanitized } from "../secrets/types"; @@ -147,18 +143,9 @@ export const useGetSecretApprovalRequests = ({ status, limit = 20, committer -}: TGetSecretApprovalRequestList & { - options?: Omit< - UseInfiniteQueryOptions< - TSecretApprovalRequest[], - unknown, - TSecretApprovalRequest[], - ReturnType - >, - "queryKey" | "queryFn" - >; -}) => +}: TGetSecretApprovalRequestList & TReactQueryOptions) => useInfiniteQuery({ + initialPageParam: 0, queryKey: secretApprovalRequestKeys.list({ workspaceId, environment, diff --git a/frontend-v2/src/hooks/api/secretFolders/queries.tsx b/frontend-v2/src/hooks/api/secretFolders/queries.tsx index f3b1cb649..b58dd3c05 100644 --- a/frontend-v2/src/hooks/api/secretFolders/queries.tsx +++ b/frontend-v2/src/hooks/api/secretFolders/queries.tsx @@ -125,21 +125,21 @@ export const useCreateFolder = () => { return data; }, onSuccess: (_, { projectId, environment, path }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId, secretPath: path ?? "/" }) - ); - queryClient.invalidateQueries( - folderQueryKeys.getSecretFolders({ projectId, environment, path }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ workspaceId: projectId, environment, directory: path }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ workspaceId: projectId, environment, directory: path }) - ); + }); + queryClient.invalidateQueries({ + queryKey: folderQueryKeys.getSecretFolders({ projectId, environment, path }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ workspaceId: projectId, environment, directory: path }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ workspaceId: projectId, environment, directory: path }) + }); } }); }; @@ -158,21 +158,21 @@ export const useUpdateFolder = () => { return data; }, onSuccess: (_, { projectId, environment, path }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId, secretPath: path ?? "/" }) - ); - queryClient.invalidateQueries( - folderQueryKeys.getSecretFolders({ projectId, environment, path }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ workspaceId: projectId, environment, directory: path }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ workspaceId: projectId, environment, directory: path }) - ); + }); + queryClient.invalidateQueries({ + queryKey: folderQueryKeys.getSecretFolders({ projectId, environment, path }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ workspaceId: projectId, environment, directory: path }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ workspaceId: projectId, environment, directory: path }) + }); } }); }; @@ -192,21 +192,21 @@ export const useDeleteFolder = () => { return data; }, onSuccess: (_, { path = "/", projectId, environment }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId, secretPath: path }) - ); - queryClient.invalidateQueries( - folderQueryKeys.getSecretFolders({ projectId, environment, path }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ workspaceId: projectId, environment, directory: path }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ workspaceId: projectId, environment, directory: path }) - ); + }); + queryClient.invalidateQueries({ + queryKey: folderQueryKeys.getSecretFolders({ projectId, environment, path }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ workspaceId: projectId, environment, directory: path }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ workspaceId: projectId, environment, directory: path }) + }); } }); }; @@ -225,33 +225,33 @@ export const useUpdateFolderBatch = () => { }, onSuccess: (_, { projectId, folders }) => { folders.forEach((folder) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId, secretPath: folder.path ?? "/" }) - ); - queryClient.invalidateQueries( - folderQueryKeys.getSecretFolders({ + }); + queryClient.invalidateQueries({ + queryKey: folderQueryKeys.getSecretFolders({ projectId, environment: folder.environment, path: folder.path }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ workspaceId: projectId, environment: folder.environment, directory: folder.path }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ workspaceId: projectId, environment: folder.environment, directory: folder.path }) - ); + }); }); } }); diff --git a/frontend-v2/src/hooks/api/secretImports/mutation.tsx b/frontend-v2/src/hooks/api/secretImports/mutation.tsx index 0f55333fd..72254bae2 100644 --- a/frontend-v2/src/hooks/api/secretImports/mutation.tsx +++ b/frontend-v2/src/hooks/api/secretImports/mutation.tsx @@ -26,15 +26,15 @@ export const useCreateSecretImport = () => { return data; }, onSuccess: (_, { environment, projectId, path }) => { - queryClient.invalidateQueries( - secretImportKeys.getProjectSecretImports({ projectId, environment, path }) - ); - queryClient.invalidateQueries( - secretImportKeys.getSecretImportSecrets({ projectId, environment, path }) - ); - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ projectId, secretPath: path ?? "/" }) - ); + queryClient.invalidateQueries({ + queryKey: secretImportKeys.getProjectSecretImports({ projectId, environment, path }) + }); + queryClient.invalidateQueries({ + queryKey: secretImportKeys.getSecretImportSecrets({ projectId, environment, path }) + }); + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId, secretPath: path ?? "/" }) + }); } }); }; @@ -53,15 +53,15 @@ export const useUpdateSecretImport = () => { return data; }, onSuccess: (_, { environment, projectId, path }) => { - queryClient.invalidateQueries( - secretImportKeys.getProjectSecretImports({ projectId, path, environment }) - ); - queryClient.invalidateQueries( - secretImportKeys.getSecretImportSecrets({ environment, path, projectId }) - ); - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ projectId, secretPath: path ?? "/" }) - ); + queryClient.invalidateQueries({ + queryKey: secretImportKeys.getProjectSecretImports({ projectId, environment, path }) + }); + queryClient.invalidateQueries({ + queryKey: secretImportKeys.getSecretImportSecrets({ projectId, environment, path }) + }); + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId, secretPath: path ?? "/" }) + }); } }); }; @@ -94,15 +94,15 @@ export const useDeleteSecretImport = () => { return data; }, onSuccess: (_, { projectId, environment, path }) => { - queryClient.invalidateQueries( - secretImportKeys.getProjectSecretImports({ projectId, environment, path }) - ); - queryClient.invalidateQueries( - secretImportKeys.getSecretImportSecrets({ projectId, environment, path }) - ); - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ projectId, secretPath: path ?? "/" }) - ); + queryClient.invalidateQueries({ + queryKey: secretImportKeys.getProjectSecretImports({ projectId, environment, path }) + }); + queryClient.invalidateQueries({ + queryKey: secretImportKeys.getSecretImportSecrets({ projectId, environment, path }) + }); + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId, secretPath: path ?? "/" }) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/secretRotation/mutation.tsx b/frontend-v2/src/hooks/api/secretRotation/mutation.tsx index c62ea1ead..6abb206b7 100644 --- a/frontend-v2/src/hooks/api/secretRotation/mutation.tsx +++ b/frontend-v2/src/hooks/api/secretRotation/mutation.tsx @@ -18,7 +18,7 @@ export const useCreateSecretRotation = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(secretRotationKeys.list({ workspaceId })); + queryClient.invalidateQueries({ queryKey: secretRotationKeys.list({ workspaceId }) }); } }); }; @@ -32,7 +32,7 @@ export const useDeleteSecretRotation = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(secretRotationKeys.list({ workspaceId })); + queryClient.invalidateQueries({ queryKey: secretRotationKeys.list({ workspaceId }) }); } }); }; @@ -46,7 +46,7 @@ export const useRestartSecretRotation = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(secretRotationKeys.list({ workspaceId })); + queryClient.invalidateQueries({ queryKey: secretRotationKeys.list({ workspaceId }) }); } }); }; diff --git a/frontend-v2/src/hooks/api/secretSharing/mutations.ts b/frontend-v2/src/hooks/api/secretSharing/mutations.ts index e805abfd2..3f2a3c8ff 100644 --- a/frontend-v2/src/hooks/api/secretSharing/mutations.ts +++ b/frontend-v2/src/hooks/api/secretSharing/mutations.ts @@ -20,7 +20,8 @@ export const useCreateSharedSecret = () => { ); return data; }, - onSuccess: () => queryClient.invalidateQueries(secretSharingKeys.allSharedSecrets()) + onSuccess: () => + queryClient.invalidateQueries({ queryKey: secretSharingKeys.allSharedSecrets() }) }); }; @@ -34,7 +35,8 @@ export const useCreatePublicSharedSecret = () => { ); return data; }, - onSuccess: () => queryClient.invalidateQueries(secretSharingKeys.allSharedSecrets()) + onSuccess: () => + queryClient.invalidateQueries({ queryKey: secretSharingKeys.allSharedSecrets() }) }); }; @@ -47,6 +49,7 @@ export const useDeleteSharedSecret = () => { ); return data; }, - onSuccess: () => queryClient.invalidateQueries(secretSharingKeys.allSharedSecrets()) + onSuccess: () => + queryClient.invalidateQueries({ queryKey: secretSharingKeys.allSharedSecrets() }) }); }; diff --git a/frontend-v2/src/hooks/api/secretSharing/queries.ts b/frontend-v2/src/hooks/api/secretSharing/queries.ts index c267adabf..84ada6c6f 100644 --- a/frontend-v2/src/hooks/api/secretSharing/queries.ts +++ b/frontend-v2/src/hooks/api/secretSharing/queries.ts @@ -51,7 +51,6 @@ export const useGetActiveSharedSecretById = ({ }) => { return useQuery({ queryKey: secretSharingKeys.getSecretById({ id: sharedSecretId, hashedHex, password }), - queryFn: async () => { const { data } = await apiRequest.post( `/api/v1/secret-sharing/public/${sharedSecretId}`, @@ -62,8 +61,7 @@ export const useGetActiveSharedSecretById = ({ ); return data; - } - }, { + }, enabled: Boolean(sharedSecretId) }); }; diff --git a/frontend-v2/src/hooks/api/secretSnapshots/queries.tsx b/frontend-v2/src/hooks/api/secretSnapshots/queries.tsx index b9be2878d..8a16b4180 100644 --- a/frontend-v2/src/hooks/api/secretSnapshots/queries.tsx +++ b/frontend-v2/src/hooks/api/secretSnapshots/queries.tsx @@ -47,6 +47,7 @@ const fetchWorkspaceSnaphots = async ({ export const useGetWorkspaceSnapshotList = (dto: TGetSecretSnapshotsDTO & { isPaused?: boolean }) => useInfiniteQuery({ + initialPageParam: 0, enabled: Boolean(dto.workspaceId && dto.environment) && !dto.isPaused, queryKey: secretSnapshotKeys.list({ ...dto }), queryFn: ({ pageParam }) => fetchWorkspaceSnaphots({ ...dto, offset: pageParam }), @@ -149,23 +150,17 @@ export const usePerformSecretRollback = () => { }, onSuccess: (_, { workspaceId, environment, directory }) => { queryClient.invalidateQueries({ - queryKey: [ - { workspaceId, environment, secretPath: directory }, - "secrets" - ] + queryKey: [{ workspaceId, environment, secretPath: directory }, "secrets"] }); queryClient.invalidateQueries({ - queryKey: [ - "secret-folders", - { projectId: workspaceId, environment, path: directory } - ] + queryKey: ["secret-folders", { projectId: workspaceId, environment, path: directory }] + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ workspaceId, environment, directory }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ workspaceId, environment, directory }) }); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ workspaceId, environment, directory }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ workspaceId, environment, directory }) - ); } }); }; diff --git a/frontend-v2/src/hooks/api/secrets/mutations.tsx b/frontend-v2/src/hooks/api/secrets/mutations.tsx index 4dc52de58..efdb866cb 100644 --- a/frontend-v2/src/hooks/api/secrets/mutations.tsx +++ b/frontend-v2/src/hooks/api/secrets/mutations.tsx @@ -47,19 +47,19 @@ export const useCreateSecretV3 = ({ return data; }, onSuccess: (_, { workspaceId, environment, secretPath }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) - ); - queryClient.invalidateQueries( - secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries(secretApprovalRequestKeys.count({ workspaceId })); + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.count({ workspaceId }) }); }, ...options }); @@ -102,19 +102,19 @@ export const useUpdateSecretV3 = ({ return data; }, onSuccess: (_, { workspaceId, environment, secretPath }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) - ); - queryClient.invalidateQueries( - secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries(secretApprovalRequestKeys.count({ workspaceId })); + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.count({ workspaceId }) }); }, ...options }); @@ -148,19 +148,19 @@ export const useDeleteSecretV3 = ({ return data; }, onSuccess: (_, { workspaceId, environment, secretPath }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) - ); - queryClient.invalidateQueries( - secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries(secretApprovalRequestKeys.count({ workspaceId })); + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.count({ workspaceId }) }); }, ...options }); @@ -184,19 +184,19 @@ export const useCreateSecretBatch = ({ return data; }, onSuccess: (_, { workspaceId, environment, secretPath }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) - ); - queryClient.invalidateQueries( - secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries(secretApprovalRequestKeys.count({ workspaceId })); + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.count({ workspaceId }) }); }, ...options }); @@ -220,19 +220,19 @@ export const useUpdateSecretBatch = ({ return data; }, onSuccess: (_, { workspaceId, environment, secretPath }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) - ); - queryClient.invalidateQueries( - secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries(secretApprovalRequestKeys.count({ workspaceId })); + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.count({ workspaceId }) }); }, ...options }); @@ -258,19 +258,19 @@ export const useDeleteSecretBatch = ({ return data; }, onSuccess: (_, { workspaceId, environment, secretPath }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) - ); - queryClient.invalidateQueries( - secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) - ); - queryClient.invalidateQueries(secretApprovalRequestKeys.count({ workspaceId })); + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId: workspaceId, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ environment, workspaceId, directory: secretPath }) + }); + queryClient.invalidateQueries({ queryKey: secretApprovalRequestKeys.count({ workspaceId }) }); }, ...options }); @@ -316,34 +316,36 @@ export const useMoveSecrets = ({ return data; }, onSuccess: (_, { projectId, sourceEnvironment, sourceSecretPath }) => { - queryClient.invalidateQueries( - dashboardKeys.getDashboardSecrets({ + queryClient.invalidateQueries({ + queryKey: dashboardKeys.getDashboardSecrets({ projectId, secretPath: sourceSecretPath }) - ); - queryClient.invalidateQueries( - secretKeys.getProjectSecret({ + }); + queryClient.invalidateQueries({ + queryKey: secretKeys.getProjectSecret({ workspaceId: projectId, environment: sourceEnvironment, secretPath: sourceSecretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.list({ + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.list({ environment: sourceEnvironment, workspaceId: projectId, directory: sourceSecretPath }) - ); - queryClient.invalidateQueries( - secretSnapshotKeys.count({ + }); + queryClient.invalidateQueries({ + queryKey: secretSnapshotKeys.count({ environment: sourceEnvironment, workspaceId: projectId, directory: sourceSecretPath }) - ); - queryClient.invalidateQueries(secretApprovalRequestKeys.count({ workspaceId: projectId })); + }); + queryClient.invalidateQueries({ + queryKey: secretApprovalRequestKeys.count({ workspaceId: projectId }) + }); }, ...options }); diff --git a/frontend-v2/src/hooks/api/secrets/queries.tsx b/frontend-v2/src/hooks/api/secrets/queries.tsx index a803ff50b..4b95579c2 100644 --- a/frontend-v2/src/hooks/api/secrets/queries.tsx +++ b/frontend-v2/src/hooks/api/secrets/queries.tsx @@ -115,26 +115,6 @@ export const useGetProjectSecrets = ({ enabled: Boolean(workspaceId && environment) && (options?.enabled ?? true), queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }), queryFn: () => fetchProjectSecrets({ workspaceId, environment, secretPath }), - onError: (error) => { - if (axios.isAxiosError(error)) { - const { message, requestId } = error.response?.data as { - message: string; - requestId: string; - }; - createNotification({ - title: "Error fetching secrets", - type: "error", - text: message, - copyActions: [ - { - value: requestId, - name: "Request ID", - label: `Request ID: ${requestId}` - } - ] - }); - } - }, select: useCallback( (data: Awaited>) => mergePersonalSecrets(data.secrets), [] diff --git a/frontend-v2/src/hooks/api/serviceTokens/queries.tsx b/frontend-v2/src/hooks/api/serviceTokens/queries.tsx index 7911f95b8..06b9b09c6 100644 --- a/frontend-v2/src/hooks/api/serviceTokens/queries.tsx +++ b/frontend-v2/src/hooks/api/serviceTokens/queries.tsx @@ -43,7 +43,9 @@ export const useCreateServiceToken = () => { return data; }, onSuccess: ({ serviceTokenData: { projectId } }) => { - queryClient.invalidateQueries(serviceTokenKeys.getAllWorkspaceServiceToken(projectId)); + queryClient.invalidateQueries({ + queryKey: serviceTokenKeys.getAllWorkspaceServiceToken(projectId) + }); } }); }; @@ -57,7 +59,9 @@ export const useDeleteServiceToken = () => { return data; }, onSuccess: ({ serviceTokenData: { projectId } }) => { - queryClient.invalidateQueries(serviceTokenKeys.getAllWorkspaceServiceToken(projectId)); + queryClient.invalidateQueries({ + queryKey: serviceTokenKeys.getAllWorkspaceServiceToken(projectId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/ssoConfig/queries.tsx b/frontend-v2/src/hooks/api/ssoConfig/queries.tsx index 69abd4f84..17dda5c1d 100644 --- a/frontend-v2/src/hooks/api/ssoConfig/queries.tsx +++ b/frontend-v2/src/hooks/api/ssoConfig/queries.tsx @@ -55,7 +55,7 @@ export const useCreateSSOConfig = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(ssoConfigKeys.getSSOConfig(dto.organizationId)); + queryClient.invalidateQueries({ queryKey: ssoConfigKeys.getSSOConfig(dto.organizationId) }); } }); }; @@ -91,10 +91,10 @@ export const useUpdateSSOConfig = () => { }, onSuccess(_, { organizationId, isActive }) { if (isActive === false) { - queryClient.invalidateQueries(organizationKeys.getUserOrganizations); + queryClient.invalidateQueries({ queryKey: organizationKeys.getUserOrganizations }); } - queryClient.invalidateQueries(ssoConfigKeys.getSSOConfig(organizationId)); + queryClient.invalidateQueries({ queryKey: ssoConfigKeys.getSSOConfig(organizationId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/tags/queries.tsx b/frontend-v2/src/hooks/api/tags/queries.tsx index fa5975145..bdbb9659d 100644 --- a/frontend-v2/src/hooks/api/tags/queries.tsx +++ b/frontend-v2/src/hooks/api/tags/queries.tsx @@ -39,7 +39,7 @@ export const useCreateWsTag = () => { return data.workspaceTag; }, onSuccess: (tagData) => { - queryClient.invalidateQueries(workspaceTags.getWsTags(tagData?.projectId)); + queryClient.invalidateQueries({ queryKey: workspaceTags.getWsTags(tagData?.projectId) }); } }); }; @@ -55,7 +55,7 @@ export const useDeleteWsTag = () => { return data.workspaceTag; }, onSuccess: (tagData) => { - queryClient.invalidateQueries(workspaceTags.getWsTags(tagData?.projectId)); + queryClient.invalidateQueries({ queryKey: workspaceTags.getWsTags(tagData?.projectId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/trustedIps/queries.ts b/frontend-v2/src/hooks/api/trustedIps/queries.ts index c8b4f922b..57a5d5844 100644 --- a/frontend-v2/src/hooks/api/trustedIps/queries.ts +++ b/frontend-v2/src/hooks/api/trustedIps/queries.ts @@ -44,7 +44,7 @@ export const useAddTrustedIp = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(trustedIps.getTrustedIps(dto.workspaceId)); + queryClient.invalidateQueries({ queryKey: trustedIps.getTrustedIps(dto.workspaceId) }); } }); }; @@ -77,7 +77,7 @@ export const useUpdateTrustedIp = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(trustedIps.getTrustedIps(dto.workspaceId)); + queryClient.invalidateQueries({ queryKey: trustedIps.getTrustedIps(dto.workspaceId) }); } }); }; @@ -99,7 +99,7 @@ export const useDeleteTrustedIp = () => { return data; }, onSuccess(_, dto) { - queryClient.invalidateQueries(trustedIps.getTrustedIps(dto.workspaceId)); + queryClient.invalidateQueries({ queryKey: trustedIps.getTrustedIps(dto.workspaceId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/users/mutation.tsx b/frontend-v2/src/hooks/api/users/mutation.tsx index 5cc50e845..3e181d713 100644 --- a/frontend-v2/src/hooks/api/users/mutation.tsx +++ b/frontend-v2/src/hooks/api/users/mutation.tsx @@ -42,7 +42,7 @@ export const useAddUserToWsE2EE = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceUsers(workspaceId)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceUsers(workspaceId) }); } }); }; @@ -59,8 +59,10 @@ export const useAddUserToWsNonE2EE = () => { return data; }, onSuccess: (_, { orgId, projectId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceUsers(projectId)); - queryClient.invalidateQueries(userKeys.allOrgMembershipProjectMemberships(orgId)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceUsers(projectId) }); + queryClient.invalidateQueries({ + queryKey: userKeys.allOrgMembershipProjectMemberships(orgId) + }); } }); }; @@ -110,7 +112,7 @@ export const useUpdateUserProjectFavorites = () => { return {}; }, onSuccess: (_, { orgId }) => { - queryClient.invalidateQueries(userKeys.userProjectFavorites(orgId)); + queryClient.invalidateQueries({ queryKey: userKeys.userProjectFavorites(orgId) }); } }); }; @@ -136,7 +138,7 @@ export const useDeleteUserTotpConfiguration = () => { return {}; }, onSuccess: () => { - queryClient.invalidateQueries(userKeys.totpConfiguration); + queryClient.invalidateQueries({ queryKey: userKeys.totpConfiguration }); } }); }; @@ -150,7 +152,7 @@ export const useCreateNewTotpRecoveryCodes = () => { return {}; }, onSuccess: () => { - queryClient.invalidateQueries(userKeys.totpConfiguration); + queryClient.invalidateQueries({ queryKey: userKeys.totpConfiguration }); } }); }; diff --git a/frontend-v2/src/hooks/api/users/queries.tsx b/frontend-v2/src/hooks/api/users/queries.tsx index 730dba8c3..78b57d0da 100644 --- a/frontend-v2/src/hooks/api/users/queries.tsx +++ b/frontend-v2/src/hooks/api/users/queries.tsx @@ -31,7 +31,11 @@ export const fetchUserDetails = async () => { return data.user; }; -export const useGetUser = () => useQuery(userKeys.getUser, fetchUserDetails); +export const useGetUser = () => + useQuery({ + queryKey: userKeys.getUser, + queryFn: fetchUserDetails + }); export const useDeleteMe = () => { const queryClient = useQueryClient(); @@ -87,7 +91,7 @@ export const useRenameUser = () => { lastName: newName?.split(" ").slice(1).join(" ") }), onSuccess: () => { - queryClient.invalidateQueries(userKeys.getUser); + queryClient.invalidateQueries({ queryKey: userKeys.getUser }); } }); }; @@ -106,7 +110,7 @@ export const useUpdateUserAuthMethods = () => { return user; }, onSuccess: () => { - queryClient.invalidateQueries(userKeys.getUser); + queryClient.invalidateQueries({ queryKey: userKeys.getUser }); } }); }; @@ -157,13 +161,15 @@ export const useAddUsersToOrg = () => { return apiRequest.post("/api/v1/invite-org/signup", dto); }, onSuccess: (_, { organizationId, projects }) => { - queryClient.invalidateQueries(userKeys.getOrgUsers(organizationId)); + queryClient.invalidateQueries({ queryKey: userKeys.getOrgUsers(organizationId) }); projects?.forEach((project) => { if (project.slug) { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(project.slug)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceGroupMemberships(project.slug) + }); } - queryClient.invalidateQueries(workspaceKeys.getWorkspaceUsers(project.id)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceUsers(project.id) }); }); } }); @@ -212,7 +218,7 @@ export const useDeleteOrgMembership = () => { return apiRequest.delete(`/api/v2/organizations/${orgId}/memberships/${membershipId}`); }, onSuccess: (_, { orgId }) => { - queryClient.invalidateQueries(userKeys.getOrgUsers(orgId)); + queryClient.invalidateQueries({ queryKey: userKeys.getOrgUsers(orgId) }); } }); }; @@ -227,8 +233,8 @@ export const useDeactivateOrgMembership = () => { ); }, onSuccess: (_, { orgId, membershipId }) => { - queryClient.invalidateQueries(userKeys.getOrgUsers(orgId)); - queryClient.invalidateQueries(userKeys.getOrgMembership(orgId, membershipId)); + queryClient.invalidateQueries({ queryKey: userKeys.getOrgUsers(orgId) }); + queryClient.invalidateQueries({ queryKey: userKeys.getOrgMembership(orgId, membershipId) }); } }); }; @@ -248,13 +254,17 @@ export const useUpdateOrgMembership = () => { ); }, onSuccess: (_, { organizationId, membershipId }) => { - queryClient.invalidateQueries(userKeys.getOrgUsers(organizationId)); - queryClient.invalidateQueries(userKeys.getOrgMembership(organizationId, membershipId)); + queryClient.invalidateQueries({ queryKey: userKeys.getOrgUsers(organizationId) }); + queryClient.invalidateQueries({ + queryKey: userKeys.getOrgMembership(organizationId, membershipId) + }); }, // to remove old states onError: (_, { organizationId, membershipId }) => { - queryClient.invalidateQueries(userKeys.getOrgUsers(organizationId)); - queryClient.invalidateQueries(userKeys.getOrgMembership(organizationId, membershipId)); + queryClient.invalidateQueries({ queryKey: userKeys.getOrgUsers(organizationId) }); + queryClient.invalidateQueries({ + queryKey: userKeys.getOrgMembership(organizationId, membershipId) + }); } }); }; @@ -264,7 +274,7 @@ export const useRegisterUserAction = () => { return useMutation({ mutationFn: (action) => apiRequest.post("/api/v1/user-action", { action }), onSuccess: () => { - queryClient.invalidateQueries(userKeys.userAction); + queryClient.invalidateQueries({ queryKey: userKeys.userAction }); } }); }; @@ -346,7 +356,7 @@ export const useCreateAPIKey = () => { return data; }, onSuccess() { - queryClient.invalidateQueries(userKeys.myAPIKeys); + queryClient.invalidateQueries({ queryKey: userKeys.myAPIKeys }); } }); }; @@ -361,7 +371,7 @@ export const useDeleteAPIKey = () => { return data; }, onSuccess() { - queryClient.invalidateQueries(userKeys.myAPIKeys); + queryClient.invalidateQueries({ queryKey: userKeys.myAPIKeys }); } }); }; @@ -387,7 +397,7 @@ export const useRevokeMySessions = () => { return data; }, onSuccess() { - queryClient.invalidateQueries(userKeys.mySessions); + queryClient.invalidateQueries({ queryKey: userKeys.mySessions }); } }); }; @@ -412,7 +422,7 @@ export const useUpdateUserMfa = () => { return user; }, onSuccess() { - queryClient.invalidateQueries(userKeys.getUser); + queryClient.invalidateQueries({ queryKey: userKeys.getUser }); } }); }; diff --git a/frontend-v2/src/hooks/api/webhooks/mutation.tsx b/frontend-v2/src/hooks/api/webhooks/mutation.tsx index 46f20a6fa..10d5e472e 100644 --- a/frontend-v2/src/hooks/api/webhooks/mutation.tsx +++ b/frontend-v2/src/hooks/api/webhooks/mutation.tsx @@ -14,7 +14,7 @@ export const useCreateWebhook = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(queryKeys.getWebhooks(workspaceId)); + queryClient.invalidateQueries({ queryKey: queryKeys.getWebhooks(workspaceId) }); } }); }; @@ -28,10 +28,10 @@ export const useTestWebhook = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(queryKeys.getWebhooks(workspaceId)); + queryClient.invalidateQueries({ queryKey: queryKeys.getWebhooks(workspaceId) }); }, onError: (_, { workspaceId }) => { - queryClient.invalidateQueries(queryKeys.getWebhooks(workspaceId)); + queryClient.invalidateQueries({ queryKey: queryKeys.getWebhooks(workspaceId) }); } }); }; @@ -47,7 +47,7 @@ export const useUpdateWebhook = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(queryKeys.getWebhooks(workspaceId)); + queryClient.invalidateQueries({ queryKey: queryKeys.getWebhooks(workspaceId) }); } }); }; @@ -61,7 +61,7 @@ export const useDeleteWebhook = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(queryKeys.getWebhooks(workspaceId)); + queryClient.invalidateQueries({ queryKey: queryKeys.getWebhooks(workspaceId) }); } }); }; diff --git a/frontend-v2/src/hooks/api/workflowIntegrations/mutation.tsx b/frontend-v2/src/hooks/api/workflowIntegrations/mutation.tsx index eea7bc92d..e87b0dd6b 100644 --- a/frontend-v2/src/hooks/api/workflowIntegrations/mutation.tsx +++ b/frontend-v2/src/hooks/api/workflowIntegrations/mutation.tsx @@ -20,8 +20,10 @@ export const useUpdateSlackIntegration = () => { return data; }, onSuccess: (_, { orgId, id }) => { - queryClient.invalidateQueries(workflowIntegrationKeys.getSlackIntegration(id)); - queryClient.invalidateQueries(workflowIntegrationKeys.getSlackIntegrations(orgId)); + queryClient.invalidateQueries({ queryKey: workflowIntegrationKeys.getSlackIntegration(id) }); + queryClient.invalidateQueries({ + queryKey: workflowIntegrationKeys.getSlackIntegrations(orgId) + }); } }); }; @@ -36,8 +38,8 @@ export const useDeleteSlackIntegration = () => { return data; }, onSuccess: (_, { orgId, id }) => { - queryClient.invalidateQueries(workflowIntegrationKeys.getSlackIntegration(id)); - queryClient.invalidateQueries(workflowIntegrationKeys.getIntegrations(orgId)); + queryClient.invalidateQueries({ queryKey: workflowIntegrationKeys.getSlackIntegration(id) }); + queryClient.invalidateQueries({ queryKey: workflowIntegrationKeys.getIntegrations(orgId) }); } }); }; @@ -54,7 +56,9 @@ export const useUpdateProjectSlackConfig = () => { return data; }, onSuccess: (_, { workspaceId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceSlackConfig(workspaceId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceSlackConfig(workspaceId) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/workspace/mutations.tsx b/frontend-v2/src/hooks/api/workspace/mutations.tsx index 4de00d2de..a53151840 100644 --- a/frontend-v2/src/hooks/api/workspace/mutations.tsx +++ b/frontend-v2/src/hooks/api/workspace/mutations.tsx @@ -27,7 +27,9 @@ export const useAddGroupToWorkspace = () => { return groupMembership; }, onSuccess: (_, { projectId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(projectId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceGroupMemberships(projectId) + }); } }); }; @@ -45,7 +47,9 @@ export const useUpdateGroupWorkspaceRole = () => { return groupMembership; }, onSuccess: (_, { projectId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(projectId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceGroupMemberships(projectId) + }); } }); }; @@ -67,10 +71,12 @@ export const useDeleteGroupFromWorkspace = () => { return groupMembership; }, onSuccess: (_, { projectId, username }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceGroupMemberships(projectId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceGroupMemberships(projectId) + }); if (username) { - queryClient.invalidateQueries(userKeys.listUserGroupMemberships(username)); + queryClient.invalidateQueries({ queryKey: userKeys.listUserGroupMemberships(username) }); } } }); @@ -83,7 +89,7 @@ export const useLeaveProject = () => { return apiRequest.delete(`/api/v1/workspace/${workspaceId}/leave`); }, onSuccess: () => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace()); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getAllUserWorkspace() }); } }); }; @@ -95,7 +101,9 @@ export const useMigrateProjectToV3 = () => { return apiRequest.post(`/api/v1/workspace/${workspaceId}/migrate-v3`); }, onSuccess: () => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager) + }); } }); }; diff --git a/frontend-v2/src/hooks/api/workspace/queries.tsx b/frontend-v2/src/hooks/api/workspace/queries.tsx index 909d5a895..0c86a3e47 100644 --- a/frontend-v2/src/hooks/api/workspace/queries.tsx +++ b/frontend-v2/src/hooks/api/workspace/queries.tsx @@ -83,14 +83,15 @@ export const useUpgradeProject = () => { }); }, onSuccess: () => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager) + }); } }); }; export const useGetUpgradeProjectStatus = ({ projectId, - onSuccess, enabled, refetchInterval }: TGetUpgradeProjectStatusDTO) => { @@ -98,7 +99,6 @@ export const useGetUpgradeProjectStatus = ({ queryKey: workspaceKeys.getProjectUpgradeStatus(projectId), queryFn: () => fetchProjectUpgradeStatus(projectId), enabled, - onSuccess, refetchInterval }); }; @@ -151,8 +151,7 @@ export const useGetUserWorkspaces = ({ useQuery({ queryKey: workspaceKeys.getAllUserWorkspace(type || ""), - queryFn: () => - fetchUserWorkspaces(includeRoles, type) + queryFn: () => fetchUserWorkspaces(includeRoles, type) }); const fetchUserWorkspaceMemberships = async (orgId: string) => { @@ -180,7 +179,9 @@ export const useNameWorkspaceSecrets = () => { secretsToUpdate }), onSuccess: (_, variables) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceIndexStatus(variables.workspaceId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceIndexStatus(variables.workspaceId) + }); } }); }; @@ -238,7 +239,9 @@ export const useCreateWorkspace = () => { type }), onSuccess: (dto) => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(dto.data.project.type)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getAllUserWorkspace(dto.data.project.type) + }); } }); }; @@ -258,7 +261,7 @@ export const useUpdateProject = () => { return data.workspace; }, onSuccess: (dto) => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(dto.type)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getAllUserWorkspace(dto.type) }); } }); }; @@ -277,7 +280,7 @@ export const useToggleAutoCapitalization = () => { return data.workspace; }, onSuccess: (dto) => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(dto.type)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getAllUserWorkspace(dto.type) }); } }); }; @@ -293,7 +296,7 @@ export const useUpdateWorkspaceVersionLimit = () => { return data.workspace; }, onSuccess: (dto) => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(dto.type)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getAllUserWorkspace(dto.type) }); } }); }; @@ -312,7 +315,7 @@ export const useUpdateWorkspaceAuditLogsRetention = () => { return data.workspace; }, onSuccess: (dto) => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(dto.type)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getAllUserWorkspace(dto.type) }); } }); }; @@ -326,7 +329,7 @@ export const useDeleteWorkspace = () => { return data.workspace; }, onSuccess: (dto) => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(dto.type)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getAllUserWorkspace(dto.type) }); queryClient.invalidateQueries({ queryKey: ["org-admin-projects"] }); @@ -345,7 +348,9 @@ export const useCreateWsEnvironment = () => { }); }, onSuccess: () => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager) + }); } }); }; @@ -362,7 +367,9 @@ export const useUpdateWsEnvironment = () => { }); }, onSuccess: () => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager) + }); } }); }; @@ -375,7 +382,9 @@ export const useDeleteWsEnvironment = () => { return apiRequest.delete(`/api/v1/workspace/${workspaceId}/environments/${id}`); }, onSuccess: () => { - queryClient.invalidateQueries(workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getAllUserWorkspace(ProjectType.SecretManager) + }); } }); }; @@ -435,8 +444,10 @@ export const useDeleteUserFromWorkspace = () => { return deletedMembership; }, onSuccess: (_, { orgId, workspaceId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceUsers(workspaceId)); - queryClient.invalidateQueries(userKeys.allOrgMembershipProjectMemberships(orgId)); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceUsers(workspaceId) }); + queryClient.invalidateQueries({ + queryKey: userKeys.allOrgMembershipProjectMemberships(orgId) + }); } }); }; @@ -456,10 +467,10 @@ export const useUpdateUserWorkspaceRole = () => { return membership; }, onSuccess: (_, { workspaceId, membershipId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceUsers(workspaceId)); - queryClient.invalidateQueries( - workspaceKeys.getWorkspaceUserDetails(workspaceId, membershipId) - ); + queryClient.invalidateQueries({ queryKey: workspaceKeys.getWorkspaceUsers(workspaceId) }); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceUserDetails(workspaceId, membershipId) + }); } }); }; @@ -488,8 +499,12 @@ export const useAddIdentityToWorkspace = () => { return identityMembership; }, onSuccess: (_, { identityId, workspaceId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceIdentityMemberships(workspaceId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityProjectMemberships(identityId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceIdentityMemberships(workspaceId) + }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityProjectMemberships(identityId) + }); } }); }; @@ -510,11 +525,15 @@ export const useUpdateIdentityWorkspaceRole = () => { return identityMembership; }, onSuccess: (_, { identityId, workspaceId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceIdentityMemberships(workspaceId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityProjectMemberships(identityId)); - queryClient.invalidateQueries( - workspaceKeys.getWorkspaceIdentityMembershipDetails(workspaceId, identityId) - ); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceIdentityMemberships(workspaceId) + }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityProjectMemberships(identityId) + }); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceIdentityMembershipDetails(workspaceId, identityId) + }); } }); }; @@ -537,8 +556,12 @@ export const useDeleteIdentityFromWorkspace = () => { return identityMembership; }, onSuccess: (_, { identityId, workspaceId }) => { - queryClient.invalidateQueries(workspaceKeys.getWorkspaceIdentityMemberships(workspaceId)); - queryClient.invalidateQueries(identitiesKeys.getIdentityProjectMemberships(identityId)); + queryClient.invalidateQueries({ + queryKey: workspaceKeys.getWorkspaceIdentityMemberships(workspaceId) + }); + queryClient.invalidateQueries({ + queryKey: identitiesKeys.getIdentityProjectMemberships(identityId) + }); } }); }; diff --git a/frontend-v2/src/routes/_authenticate.tsx b/frontend-v2/src/routes/_authenticate.tsx index b16407721..cb70c4c6f 100644 --- a/frontend-v2/src/routes/_authenticate.tsx +++ b/frontend-v2/src/routes/_authenticate.tsx @@ -3,13 +3,12 @@ import { createFileRoute, redirect } from "@tanstack/react-router"; import { createNotification } from "@app/components/notifications"; import { userKeys } from "@app/hooks/api"; import { authKeys, fetchAuthToken } from "@app/hooks/api/auth/queries"; -import { setAuthToken } from "@app/hooks/api/reactQuery"; import { fetchUserDetails } from "@app/hooks/api/users/queries"; export const Route = createFileRoute("/_authenticate")({ beforeLoad: async ({ context }) => { const data = await context.queryClient - .fetchQuery({ + .ensureQueryData({ queryKey: authKeys.getAuthToken, queryFn: fetchAuthToken }) @@ -24,12 +23,11 @@ export const Route = createFileRoute("/_authenticate")({ }); }); - setAuthToken(data.token); if (!data.organizationId) { throw redirect({ to: "/login/select-organization" }); } - const user = await context.queryClient.fetchQuery({ + const user = await context.queryClient.ensureQueryData({ queryKey: userKeys.getUser, queryFn: fetchUserDetails }); diff --git a/frontend-v2/src/routes/_authenticate/_org_details.tsx b/frontend-v2/src/routes/_authenticate/_org_details.tsx index 8c4f0601b..0fa379502 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details.tsx @@ -1,41 +1,26 @@ -import { createMongoAbility, MongoAbility, RawRuleOf } from "@casl/ability"; -import { unpackRules } from "@casl/ability/extra"; import { createFileRoute } from "@tanstack/react-router"; -import { OrgPermissionSet } from "@app/context/OrgPermissionContext/types"; import { fetchOrganizationById, organizationKeys } from "@app/hooks/api/organization/queries"; -import { - conditionsMatcher, - fetchUserOrgPermissions, - roleQueryKeys -} from "@app/hooks/api/roles/queries"; +import { fetchUserOrgPermissions, roleQueryKeys } from "@app/hooks/api/roles/queries"; import { fetchOrgSubscription, subscriptionQueryKeys } from "@app/hooks/api/subscriptions/queries"; export const Route = createFileRoute("/_authenticate/_org_details")({ beforeLoad: async ({ context }) => { const organizationId = context.organizationId!; - const orgDetails = await context.queryClient.fetchQuery({ + await context.queryClient.ensureQueryData({ queryKey: organizationKeys.getOrgById(organizationId), queryFn: () => fetchOrganizationById(organizationId) }); - const subscription = await context.queryClient.fetchQuery({ + await context.queryClient.ensureQueryData({ queryKey: subscriptionQueryKeys.getOrgSubsription(organizationId), queryFn: () => fetchOrgSubscription(organizationId) }); - const orgPermission = await context.queryClient.fetchQuery({ + await context.queryClient.ensureQueryData({ queryKey: roleQueryKeys.getUserOrgPermissions({ orgId: organizationId }), queryFn: () => fetchUserOrgPermissions({ orgId: organizationId }) }); - - const rule = unpackRules>>(orgPermission.permissions); - const ability = createMongoAbility(rule, { conditionsMatcher }); - - return { - organization: orgDetails, - subscription, - orgPermission: { permission: ability, membership: orgPermission.membership } - }; + return { organizationId }; } }); diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/admin/-components/OrgAdminProjects/OrgAdminProjects.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/admin/-components/OrgAdminProjects/OrgAdminProjects.tsx index adba6d9a9..1d2fc1ffb 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/admin/-components/OrgAdminProjects/OrgAdminProjects.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/admin/-components/OrgAdminProjects/OrgAdminProjects.tsx @@ -43,7 +43,7 @@ export const OrgAdminProjects = withPermission( const navigate = useNavigate(); const orgAdminAccessProject = useOrgAdminAccessProject(); - const { data, isLoading: isProjectsLoading } = useOrgAdminGetProjects({ + const { data, isPending: isProjectsLoading } = useOrgAdminGetProjects({ offset: (page - 1) * perPage, limit: perPage, search: debouncedSearch || undefined @@ -130,12 +130,12 @@ export const OrgAdminProjects = withPermission( icon={} disabled={ orgAdminAccessProject.variables?.projectId === id && - orgAdminAccessProject.isLoading + orgAdminAccessProject.isPending } > Access{" "} {orgAdminAccessProject.variables?.projectId === id && - orgAdminAccessProject.isLoading && } + orgAdminAccessProject.isPending && } diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/audit-logs/-components/LogsFilter.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/audit-logs/-components/LogsFilter.tsx index 1c644b821..ba7457128 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/audit-logs/-components/LogsFilter.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/audit-logs/-components/LogsFilter.tsx @@ -61,7 +61,7 @@ export const LogsFilter = ({ const workspacesInOrg = workspaces.filter((ws) => ws.orgId === currentOrg?.id); - const { data, isLoading } = useGetAuditLogActorFilterOpts(workspaces?.[0]?.id ?? ""); + const { data, isPending } = useGetAuditLogActorFilterOpts(workspaces?.[0]?.id ?? ""); useEffect(() => { if (workspacesInOrg.length) { @@ -205,7 +205,7 @@ export const LogsFilter = ({ )} /> - {!isLoading && data && data.length > 0 && !presets?.actorId && ( + {!isPending && data && data.length > 0 && !presets?.actorId && ( @@ -78,7 +78,7 @@ export const LogsTable = ({ - {!isLoading && + {!isPending && data?.pages?.map((group, i) => ( {group.map((auditLog) => ( @@ -91,7 +91,7 @@ export const LogsTable = ({ ))} ))} - {isLoading && } + {isPending && } {isEmpty && ( diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/CurrentPlanSection.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/CurrentPlanSection.tsx index a3135d85f..1b7e84f2c 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/CurrentPlanSection.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/CurrentPlanSection.tsx @@ -17,7 +17,7 @@ import { useGetOrgPlanTable } from "@app/hooks/api"; export const CurrentPlanSection = () => { const { currentOrg } = useOrganization(); - const { data, isLoading } = useGetOrgPlanTable(currentOrg?.id ?? ""); + const { data, isPending } = useGetOrgPlanTable(currentOrg?.id ?? ""); const displayCell = (value: null | number | string | boolean) => { if (value === null) return "-"; @@ -44,7 +44,7 @@ export const CurrentPlanSection = () => { - {!isLoading && + {!isPending && data && data?.rows?.length > 0 && data.rows.map(({ name, allowed, used }) => { @@ -56,8 +56,8 @@ export const CurrentPlanSection = () => { ); })} - {isLoading && } - {!isLoading && data && data?.rows?.length === 0 && ( + {isPending && } + {!isPending && data && data?.rows?.length === 0 && ( diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/ManagePlansTable.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/ManagePlansTable.tsx index b37c22012..29b0326c4 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/ManagePlansTable.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/ManagePlansTable.tsx @@ -23,7 +23,7 @@ type Props = { export const ManagePlansTable = ({ billingCycle }: Props) => { const { currentOrg } = useOrganization(); const { subscription } = useSubscription(); - const { data: tableData, isLoading: isTableDataLoading } = useGetOrgPlansTable({ + const { data: tableData, isPending: isTableDataLoading } = useGetOrgPlansTable({ organizationId: currentOrg?.id ?? "", billingCycle }); diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/PreviewSection.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/PreviewSection.tsx index a7c4cb443..ab160e4c5 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/PreviewSection.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingCloudTab/PreviewSection.tsx @@ -21,7 +21,7 @@ import { ManagePlansModal } from "./ManagePlansModal"; export const PreviewSection = () => { const { currentOrg } = useOrganization(); const { subscription } = useSubscription(); - const { data, isLoading } = useGetOrgPlanBillingInfo(currentOrg?.id ?? ""); + const { data, isPending } = useGetOrgPlanBillingInfo(currentOrg?.id ?? ""); const getOrgTrialUrl = useGetOrgTrialUrl(); const createCustomerPortalSession = useCreateCustomerPortalSession(); @@ -124,7 +124,7 @@ export const PreviewSection = () => { )} - {!isLoading && subscription && data && ( + {!isPending && subscription && data && (

Current plan

diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/CompanyNameSection.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/CompanyNameSection.tsx index 10df8e43a..c78017acc 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/CompanyNameSection.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/CompanyNameSection.tsx @@ -24,7 +24,7 @@ export const CompanyNameSection = () => { resolver: zodResolver(schema) }); const { data } = useGetOrgBillingDetails(currentOrg?.id ?? ""); - const { mutateAsync, isLoading } = useUpdateOrgBillingDetails(); + const { mutateAsync, isPending } = useUpdateOrgBillingDetails(); useEffect(() => { if (data) { @@ -79,8 +79,8 @@ export const CompanyNameSection = () => { diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/InvoiceEmailSection.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/InvoiceEmailSection.tsx index 951c2bc33..ac192b312 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/InvoiceEmailSection.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/InvoiceEmailSection.tsx @@ -24,7 +24,7 @@ export const InvoiceEmailSection = () => { resolver: yupResolver(schema) }); const { data } = useGetOrgBillingDetails(currentOrg?.id ?? ""); - const { mutateAsync, isLoading } = useUpdateOrgBillingDetails(); + const { mutateAsync, isPending } = useUpdateOrgBillingDetails(); useEffect(() => { if (data) { @@ -80,8 +80,8 @@ export const InvoiceEmailSection = () => { diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/PmtMethodsSection.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/PmtMethodsSection.tsx index 266e52999..9d90bf50b 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/PmtMethodsSection.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/billing/-components/BillingDetailsTab/PmtMethodsSection.tsx @@ -10,7 +10,7 @@ import { PmtMethodsTable } from "./PmtMethodsTable"; export const PmtMethodsSection = () => { const { currentOrg } = useOrganization(); - const { mutateAsync, isLoading } = useAddOrgPmtMethod(); + const { mutateAsync, isPending } = useAddOrgPmtMethod(); const handleAddPmtMethodBtnClick = async () => { if (!currentOrg?.id) return; @@ -32,7 +32,7 @@ export const PmtMethodsSection = () => { {/* eslint-disable-next-line no-nested-ternary */} - {isLoading ? ( + {isPending ? (
diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/settings/-components/ProjectTemplatesTab/components/ProjectTemplatesSection.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/settings/-components/ProjectTemplatesTab/components/ProjectTemplatesSection.tsx index 151ee9f5d..d4a076930 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/settings/-components/ProjectTemplatesTab/components/ProjectTemplatesSection.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/settings/-components/ProjectTemplatesTab/components/ProjectTemplatesSection.tsx @@ -3,8 +3,9 @@ import { faArrowUpRightFromSquare, faBookOpen, faPlus } from "@fortawesome/free- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { AnimatePresence, motion } from "framer-motion"; +import { UpgradePlanModal } from "@app/components/license/UpgradePlanModal"; import { OrgPermissionCan } from "@app/components/permissions"; -import { Button, UpgradePlanModal } from "@app/components/v2"; +import { Button } from "@app/components/v2"; import { OrgPermissionActions, OrgPermissionSubjects, useSubscription } from "@app/context"; import { TProjectTemplate } from "@app/hooks/api/projectTemplates"; import { usePopUp } from "@app/hooks/usePopUp"; diff --git a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/settings/-components/ProjectTemplatesTab/components/ProjectTemplatesTable.tsx b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/settings/-components/ProjectTemplatesTab/components/ProjectTemplatesTable.tsx index b3e2d9ba3..b8dc00ab2 100644 --- a/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/settings/-components/ProjectTemplatesTab/components/ProjectTemplatesTable.tsx +++ b/frontend-v2/src/routes/_authenticate/_org_details/organization/$organizationId/settings/-components/ProjectTemplatesTab/components/ProjectTemplatesTable.tsx @@ -35,7 +35,7 @@ type Props = { export const ProjectTemplatesTable = ({ onEdit }: Props) => { const { subscription } = useSubscription(); - const { isLoading, data: projectTemplates = [] } = useListProjectTemplates({ + const { isPending, data: projectTemplates = [] } = useListProjectTemplates({ enabled: subscription?.projectTemplates }); const [search, setSearch] = useState(""); @@ -69,7 +69,7 @@ export const ProjectTemplatesTable = ({ onEdit }: Props) => { - {isLoading && ( + {isPending && ( { ); })} - {!isLoading && filteredTemplates?.length === 0 && ( + {!isPending && filteredTemplates?.length === 0 && ( { - const { data, isLoading } = useGetMyAPIKeys(); + const { data, isPending } = useGetMyAPIKeys(); const { mutateAsync } = useDeleteAPIKey(); const handleDeleteAPIKeyDataClick = async (apiKeyDataId: string) => { @@ -50,8 +50,8 @@ export const APIKeyTable = () => { - {isLoading && } - {!isLoading && + {isPending && } + {!isPending && data && data.length > 0 && data.map(({ id, name, createdAt, expiresAt, lastUsed }) => { @@ -77,7 +77,7 @@ export const APIKeyTable = () => { ); })} - {!isLoading && data && data?.length === 0 && ( + {!isPending && data && data?.length === 0 && ( diff --git a/frontend-v2/src/routes/_authenticate/personal-settings/-components/APIKeySection/AddAPIKeyModal.tsx b/frontend-v2/src/routes/_authenticate/personal-settings/-components/APIKeySection/AddAPIKeyModal.tsx index 595da20f2..ce901112e 100644 --- a/frontend-v2/src/routes/_authenticate/personal-settings/-components/APIKeySection/AddAPIKeyModal.tsx +++ b/frontend-v2/src/routes/_authenticate/personal-settings/-components/APIKeySection/AddAPIKeyModal.tsx @@ -54,7 +54,7 @@ export const AddAPIKeyModal = ({ popUp, handlePopUpToggle }: Props) => { const [newAPIKey, setNewAPIKey] = useState(""); const [isAPIKeyCopied, setIsAPIKeyCopied] = useToggle(false); - const { mutateAsync, isLoading } = useCreateAPIKey(); + const { mutateAsync, isPending } = useCreateAPIKey(); const { control, handleSubmit, reset } = useForm({ resolver: zodResolver(schema) @@ -149,8 +149,8 @@ export const AddAPIKeyModal = ({ popUp, handlePopUpToggle }: Props) => { className="mr-4" size="sm" type="submit" - isLoading={isLoading} - isDisabled={isLoading} + isLoading={isPending} + isDisabled={isPending} > Add diff --git a/frontend-v2/src/routes/_authenticate/personal-settings/-components/DeleteAccountSection/DeleteAccountSection.tsx b/frontend-v2/src/routes/_authenticate/personal-settings/-components/DeleteAccountSection/DeleteAccountSection.tsx index 74e2f83fe..f69c7aab1 100644 --- a/frontend-v2/src/routes/_authenticate/personal-settings/-components/DeleteAccountSection/DeleteAccountSection.tsx +++ b/frontend-v2/src/routes/_authenticate/personal-settings/-components/DeleteAccountSection/DeleteAccountSection.tsx @@ -12,7 +12,7 @@ export const DeleteAccountSection = () => { "deleteAccount" ] as const); - const { mutateAsync: deleteUserMutateAsync, isLoading } = useDeleteMe(); + const { mutateAsync: deleteUserMutateAsync, isPending } = useDeleteMe(); const handleDeleteAccountSubmit = async () => { try { @@ -38,7 +38,7 @@ export const DeleteAccountSection = () => {

Danger Zone

- diff --git a/frontend-v2/src/routes/_restrict_login_signup/login/-components/Login.utils.tsx b/frontend-v2/src/routes/_restrict_login_signup/login/-components/Login.utils.tsx index 963f86078..46f60858a 100644 --- a/frontend-v2/src/routes/_restrict_login_signup/login/-components/Login.utils.tsx +++ b/frontend-v2/src/routes/_restrict_login_signup/login/-components/Login.utils.tsx @@ -37,7 +37,7 @@ export const useNavigateToSelectOrganization = () => { if (config.defaultAuthOrgId) { redirectTo += `org_id=${config.defaultAuthOrgId}&`; } else { - queryClient.invalidateQueries(userKeys.getUser); + queryClient.invalidateQueries({ queryKey: userKeys.getUser }); } if (cliCallbackPort) { diff --git a/frontend-v2/src/routes/_restrict_login_signup/login/provider/success.tsx b/frontend-v2/src/routes/_restrict_login_signup/login/provider/success.tsx index d5906a2ec..8a0e4b62f 100644 --- a/frontend-v2/src/routes/_restrict_login_signup/login/provider/success.tsx +++ b/frontend-v2/src/routes/_restrict_login_signup/login/provider/success.tsx @@ -1,9 +1,9 @@ import { useEffect } from "react"; import { createFileRoute, useSearch } from "@tanstack/react-router"; +import { zodValidator } from "@tanstack/zod-adapter"; +import { z } from "zod"; import SecurityClient from "@app/components/utilities/SecurityClient"; -import { z } from "zod"; -import { zodValidator } from "@tanstack/zod-adapter"; const LoginProviderSuccess = () => { const search = useSearch({ from: "/_restrict_login_signup/login/provider/success" }); diff --git a/frontend-v2/src/routes/_restrict_login_signup/login/select-organization/index.tsx b/frontend-v2/src/routes/_restrict_login_signup/login/select-organization/index.tsx index f4682026b..63df0b1c5 100644 --- a/frontend-v2/src/routes/_restrict_login_signup/login/select-organization/index.tsx +++ b/frontend-v2/src/routes/_restrict_login_signup/login/select-organization/index.tsx @@ -43,7 +43,7 @@ const SelectOrganizationPage = () => { const organizations = useGetOrganizations(); const selectOrg = useSelectOrganization(); - const { data: user, isLoading: userLoading } = useGetUser(); + const { data: user, isPending: userLoading } = useGetUser(); const [shouldShowMfa, toggleShowMfa] = useToggle(false); const [requiredMfaMethod, setRequiredMfaMethod] = useState(MfaMethod.EMAIL); const [isInitialOrgCheckLoading, setIsInitialOrgCheckLoading] = useState(true); @@ -175,7 +175,7 @@ const SelectOrganizationPage = () => { }, [navigate]); useEffect(() => { - if (organizations.isLoading || !organizations.data) return; + if (organizations.isPending || !organizations.data) return; // Case: User has no organizations. // This can happen if the user was previously a member, but the organization was deleted or the user was removed. @@ -191,7 +191,7 @@ const SelectOrganizationPage = () => { } else { setIsInitialOrgCheckLoading(false); } - }, [organizations.isLoading, organizations.data]); + }, [organizations.isPending, organizations.data]); useEffect(() => { if (defaultSelectedOrg) { @@ -248,7 +248,7 @@ const SelectOrganizationPage = () => {
- {organizations.isLoading ? ( + {organizations.isPending ? ( ) : ( organizations.data?.map((org) => ( diff --git a/frontend-v2/src/routes/_restrict_login_signup/password-reset.tsx b/frontend-v2/src/routes/_restrict_login_signup/password-reset.tsx index 19c602c6d..86dfe2b3a 100644 --- a/frontend-v2/src/routes/_restrict_login_signup/password-reset.tsx +++ b/frontend-v2/src/routes/_restrict_login_signup/password-reset.tsx @@ -41,7 +41,7 @@ const PasswordResetPage = () => { const { mutateAsync: verifyPasswordResetCodeMutateAsync, - isLoading: isVerifyPasswordResetLoading + isPending: isVerifyPasswordResetLoading } = useVerifyPasswordResetCode(); const { mutateAsync: resetPasswordMutateAsync } = useResetPassword(); diff --git a/frontend-v2/src/types/reactQuery.ts b/frontend-v2/src/types/reactQuery.ts new file mode 100644 index 000000000..18ef404dd --- /dev/null +++ b/frontend-v2/src/types/reactQuery.ts @@ -0,0 +1,6 @@ +export type TReactQueryOptions = { + options?: { + enabled?: boolean; + refetchInterval?: number; + }; +};