⚡️ perf(subscribe): Form discount price
This commit is contained in:
parent
a7927d701a
commit
059a8921d5
@ -5,7 +5,7 @@ import { Combobox } from '@repo/ui/combobox';
|
|||||||
import { ArrayInput } from '@repo/ui/dynamic-Inputs';
|
import { ArrayInput } from '@repo/ui/dynamic-Inputs';
|
||||||
import { JSONEditor } from '@repo/ui/editor';
|
import { JSONEditor } from '@repo/ui/editor';
|
||||||
import { EnhancedInput } from '@repo/ui/enhanced-input';
|
import { EnhancedInput } from '@repo/ui/enhanced-input';
|
||||||
import { unitConversion } from '@repo/ui/utils';
|
import { evaluateWithPrecision, unitConversion } from '@repo/ui/utils';
|
||||||
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@shadcn/ui/accordion';
|
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@shadcn/ui/accordion';
|
||||||
import { Button } from '@shadcn/ui/button';
|
import { Button } from '@shadcn/ui/button';
|
||||||
import { Checkbox } from '@shadcn/ui/checkbox';
|
import { Checkbox } from '@shadcn/ui/checkbox';
|
||||||
@ -448,6 +448,33 @@ export default function SubscribeForm<T extends Record<string, any>>({
|
|||||||
max: 100,
|
max: 100,
|
||||||
placeholder: t('form.discountPercent'),
|
placeholder: t('form.discountPercent'),
|
||||||
suffix: '%',
|
suffix: '%',
|
||||||
|
calculateValue: (data) => {
|
||||||
|
const { unit_price } = form.getValues();
|
||||||
|
return {
|
||||||
|
...data,
|
||||||
|
price: evaluateWithPrecision(
|
||||||
|
`${unit_price} * ${data.months} * ${data.discount} / 100`,
|
||||||
|
),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'price',
|
||||||
|
placeholder: t('form.discount_price'),
|
||||||
|
type: 'number',
|
||||||
|
min: 0,
|
||||||
|
formatInput: (value) => unitConversion('centsToDollars', value),
|
||||||
|
formatOutput: (value) => unitConversion('dollarsToCents', value),
|
||||||
|
internal: true,
|
||||||
|
calculateValue: (data) => {
|
||||||
|
const { unit_price } = form.getValues();
|
||||||
|
return {
|
||||||
|
...data,
|
||||||
|
discount: evaluateWithPrecision(
|
||||||
|
`${data.price} / ${data.months} / ${unit_price} * 100`,
|
||||||
|
),
|
||||||
|
};
|
||||||
|
},
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
value={field.value}
|
value={field.value}
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
"discountDescription": "Set discount based on unit price",
|
"discountDescription": "Set discount based on unit price",
|
||||||
"discountMonths": "Months",
|
"discountMonths": "Months",
|
||||||
"discountPercent": "Discount Percentage",
|
"discountPercent": "Discount Percentage",
|
||||||
|
"discount_price": "Discount Price",
|
||||||
"duration": "Duration (months)",
|
"duration": "Duration (months)",
|
||||||
"inventory": "Inventory",
|
"inventory": "Inventory",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
"discountDescription": "基于单价设置折扣",
|
"discountDescription": "基于单价设置折扣",
|
||||||
"discountMonths": "月",
|
"discountMonths": "月",
|
||||||
"discountPercent": "折扣比",
|
"discountPercent": "折扣比",
|
||||||
|
"discount_price": "折扣价格",
|
||||||
"duration": "时长(月)",
|
"duration": "时长(月)",
|
||||||
"inventory": "库存",
|
"inventory": "库存",
|
||||||
"name": "名称",
|
"name": "名称",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user