diff --git a/server/src/internal/customers/attach/handleAttachPreview/getNewProductPreview.ts b/server/src/internal/customers/attach/handleAttachPreview/getNewProductPreview.ts index a5dd1f4bc..f1f089407 100644 --- a/server/src/internal/customers/attach/handleAttachPreview/getNewProductPreview.ts +++ b/server/src/internal/customers/attach/handleAttachPreview/getNewProductPreview.ts @@ -119,6 +119,10 @@ export const getNewProductPreview = async ({ }); } + if (config.disableTrial) { + attachParams.freeTrial = null; + } + const items = await getItemsForNewProduct({ newProduct, attachParams, diff --git a/vite/src/views/products/plan/components/EditPlanHeader.tsx b/vite/src/views/products/plan/components/EditPlanHeader.tsx index e15ab7bca..50b3e69a9 100644 --- a/vite/src/views/products/plan/components/EditPlanHeader.tsx +++ b/vite/src/views/products/plan/components/EditPlanHeader.tsx @@ -28,7 +28,9 @@ import { PlanToolbar } from "./PlanToolbar.tsx"; export const EditPlanHeader = () => { const { product, numVersions } = useProductQuery(); - const { counts } = useProductCountsQuery(); + const { counts } = useProductCountsQuery( + product.version ? { version: product.version } : {}, + ); const { refetch: refetchMigrations } = useMigrationsQuery(); const { queryStates, setQueryStates } = useProductQueryState(); const axiosInstance = useAxiosInstance(); diff --git a/vite/src/views/products/product/hooks/queries/useProductCountsQuery.tsx b/vite/src/views/products/product/hooks/queries/useProductCountsQuery.tsx index d8476d435..809108025 100644 --- a/vite/src/views/products/product/hooks/queries/useProductCountsQuery.tsx +++ b/vite/src/views/products/product/hooks/queries/useProductCountsQuery.tsx @@ -1,10 +1,14 @@ import { useQuery } from "@tanstack/react-query"; import { useParams } from "react-router-dom"; -import { useAxiosInstance } from "@/services/useAxiosInstance"; import { useProductStore } from "@/hooks/stores/useProductStore"; +import { useAxiosInstance } from "@/services/useAxiosInstance"; import { useProductQueryState } from "../useProductQuery"; -export const useProductCountsQuery = () => { +export const useProductCountsQuery = ({ + version, +}: { + version?: number; +} = {}) => { const axiosInstance = useAxiosInstance(); const { product_id } = useParams(); const { queryStates } = useProductQueryState(); @@ -17,12 +21,14 @@ export const useProductCountsQuery = () => { if (!productId) return null; // Always get counts for the latest version (don't pass version param) // This ensures we check if the CURRENT version has customers, not older versions - const { data } = await axiosInstance.get(`/products/${productId}/count`); + const { data } = await axiosInstance.get(`/products/${productId}/count`, { + ...(version ? { params: { version } } : {}), + }); return data; }; const { data, isLoading, error, refetch } = useQuery({ - queryKey: ["product_counts", productId], + queryKey: ["product_counts", productId, version], queryFn: fetchProductCounts, retry: false, // Don't retry on error (e.g., product not found) enabled: !!productId, // Only run query if productId exists