🐛 fix: Update quantity handling in Purchase and Renewal components based on showOriginalPrice prop

This commit is contained in:
web@ppanel 2025-12-29 08:34:15 +00:00
parent cc52e3614d
commit a2746073a6
3 changed files with 15 additions and 3 deletions

View File

@ -15,6 +15,7 @@ interface DurationSelectorProps {
unitTime?: string; unitTime?: string;
discounts?: Array<{ quantity: number; discount: number }>; discounts?: Array<{ quantity: number; discount: number }>;
onChange: (value: number) => void; onChange: (value: number) => void;
showOriginalPrice?: boolean;
} }
const DurationSelector: React.FC<DurationSelectorProps> = ({ const DurationSelector: React.FC<DurationSelectorProps> = ({
@ -22,6 +23,7 @@ const DurationSelector: React.FC<DurationSelectorProps> = ({
unitTime = "Month", unitTime = "Month",
discounts = [], discounts = [],
onChange, onChange,
showOriginalPrice = true,
}) => { }) => {
const { t } = useTranslation("subscribe"); const { t } = useTranslation("subscribe");
const handleChange = useCallback( const handleChange = useCallback(
@ -61,7 +63,7 @@ const DurationSelector: React.FC<DurationSelectorProps> = ({
onValueChange={handleChange} onValueChange={handleChange}
value={String(quantity)} value={String(quantity)}
> >
{unitTime !== "Minute" && ( {showOriginalPrice && unitTime !== "Minute" && (
<DurationOption label={`1 / ${t(unitTime)}`} value="1" /> <DurationOption label={`1 / ${t(unitTime)}`} value="1" />
)} )}
{discounts?.map((item) => ( {discounts?.map((item) => (

View File

@ -74,9 +74,13 @@ export default function Purchase({
useEffect(() => { useEffect(() => {
if (subscribe) { if (subscribe) {
const defaultQuantity =
subscribe.show_original_price === false && subscribe.discount?.[0]
? subscribe.discount[0].quantity
: 1;
setParams((prev) => ({ setParams((prev) => ({
...prev, ...prev,
quantity: 1, quantity: defaultQuantity,
subscribe_id: subscribe?.id, subscribe_id: subscribe?.id,
})); }));
} }
@ -146,6 +150,7 @@ export default function Purchase({
handleChange("quantity", value); handleChange("quantity", value);
}} }}
quantity={params.quantity as number} quantity={params.quantity as number}
showOriginalPrice={subscribe?.show_original_price}
unitTime={subscribe?.unit_time} unitTime={subscribe?.unit_time}
/> />
<CouponInput <CouponInput

View File

@ -72,9 +72,13 @@ export default function Renewal({ id, subscribe }: Readonly<RenewalProps>) {
useEffect(() => { useEffect(() => {
if (subscribe.id && id) { if (subscribe.id && id) {
const defaultQuantity =
subscribe.show_original_price === false && subscribe.discount?.[0]
? subscribe.discount[0].quantity
: 1;
setParams((prev) => ({ setParams((prev) => ({
...prev, ...prev,
quantity: 1, quantity: defaultQuantity,
subscribe_id: subscribe.id, subscribe_id: subscribe.id,
user_subscribe_id: id, user_subscribe_id: id,
})); }));
@ -145,6 +149,7 @@ export default function Renewal({ id, subscribe }: Readonly<RenewalProps>) {
handleChange("quantity", value); handleChange("quantity", value);
}} }}
quantity={params.quantity!} quantity={params.quantity!}
showOriginalPrice={subscribe?.show_original_price}
unitTime={subscribe?.unit_time} unitTime={subscribe?.unit_time}
/> />
<CouponInput <CouponInput