From 17d7a3f0d905bcd4b7d1f58840c1971576a910fd Mon Sep 17 00:00:00 2001 From: Ayush Rodrigues Date: Fri, 18 Apr 2025 19:15:37 +0100 Subject: [PATCH] add default reset_usage_when_enabled state --- .../product-item/CreateProductItem.tsx | 4 +- .../product/product-item/MoreMenuButton.tsx | 50 +++++++++++++------ 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/vite/src/views/products/product/product-item/CreateProductItem.tsx b/vite/src/views/products/product/product-item/CreateProductItem.tsx index 40b09140f..a1c710149 100644 --- a/vite/src/views/products/product/product-item/CreateProductItem.tsx +++ b/vite/src/views/products/product/product-item/CreateProductItem.tsx @@ -32,7 +32,7 @@ export let defaultProductItem: ProductItem = { // Others entity_feature_id: null, - reset_usage_when_enabled: false, + reset_usage_when_enabled: true, }; let defaultPriceItem: ProductItem = { @@ -49,7 +49,7 @@ let defaultPriceItem: ProductItem = { // Others entity_feature_id: null, - reset_usage_when_enabled: false, + reset_usage_when_enabled: true, }; export function CreateProductItem() { diff --git a/vite/src/views/products/product/product-item/MoreMenuButton.tsx b/vite/src/views/products/product/product-item/MoreMenuButton.tsx index 70843c74f..e91b23e42 100644 --- a/vite/src/views/products/product/product-item/MoreMenuButton.tsx +++ b/vite/src/views/products/product/product-item/MoreMenuButton.tsx @@ -25,16 +25,30 @@ export default function MoreMenuButton({ }: { item: ProductItem; setItem: (item: ProductItem) => void } = useProductItemContext(); - // useEffect(() => { - // const shouldCarryOver = - // item.interval === null || item.reset_usage_on_billing === false; - // if (item.carry_over_usage !== shouldCarryOver) { - // setItem({ - // ...item, - // carry_over_usage: shouldCarryOver, - // }); - // } - // }, [item.interval, item.reset_usage_on_billing]); + const [checkedChanged, setCheckedChanged] = useState(false); + const [initialLoad, setInitialLoad] = useState(true); + + useEffect(() => { + //function to determine default reset usage when enabled state + console.log(item); + if (checkedChanged) return; //don't change anything if user has explicity set the state value + + const defaultReset = !( + (item.interval === null || item.reset_usage_on_billing === false) // what our default behaviour is + ); + + if (initialLoad) { + const diverged = (item.reset_usage_when_enabled != defaultReset) === true; //on the first load see if it's diverged from the state (ie if this item has the value explicity set already) + diverged && setCheckedChanged(true); + setInitialLoad(false); + return; + } + + setItem({ + ...item, + reset_usage_when_enabled: defaultReset, + }); + }, [item.interval, item.reset_usage_on_billing, checkedChanged]); return ( @@ -58,6 +72,7 @@ export default function MoreMenuButton({ variant="secondary" className="text-xs text-t2 shadow-none border-none w-full justify-start" onClick={() => { + setCheckedChanged(true); setItem({ ...item, reset_usage_when_enabled: !item.reset_usage_when_enabled, @@ -70,12 +85,15 @@ export default function MoreMenuButton({ // defaultChecked={ // item.interval === null || item.reset_usage_on_billing === false // } - onCheckedChange={(checked) => - setItem({ - ...item, - reset_usage_when_enabled: Boolean(!checked), - }) - } + // onCheckedChange={() => console.log("hello")} + // onChange={(checked) => { + // console.log("hello"); + // setCheckedChanged(true); + // setItem({ + // ...item, + // reset_usage_when_enabled: Boolean(!checked), + // }); + // }} /> Reset usage when product is enabled