diff --git a/src/components/NumberInputWithUnitAdornment.tsx b/src/components/NumberInputWithUnitAdornment.tsx index 397a124..e43a40b 100644 --- a/src/components/NumberInputWithUnitAdornment.tsx +++ b/src/components/NumberInputWithUnitAdornment.tsx @@ -2,15 +2,24 @@ import { useState } from "react" import { InputAdornment, TextField, Typography, useTheme } from "@mui/material" import type { ChangeEvent } from "react" +import {Privilege} from "@frontend/kitui" interface Props { id: string; value: number; adornmentText: string; + privilege: Privilege; onChange: (value: number) => void; } -export default function NumberInputWithUnitAdornment({ id, value, adornmentText, onChange }: Props) { +const sliderSettingsByType = { + день: { max: 365, min: 30 }, + шаблон: { max: 5000, min: 100 }, + МБ: { max: 5000, min: 100 }, + заявка: { max: 5000, min: 100 } +} + +export default function NumberInputWithUnitAdornment({ id, value, adornmentText, privilege, onChange }: Props) { const theme = useTheme() const [changed, setChanged] = useState(false) @@ -20,7 +29,7 @@ export default function NumberInputWithUnitAdornment({ id, value, adornmentText, size="small" placeholder="Введите вручную" id={id} - value={changed ? (value !== 0 ? value : "") : ""} + value={changed ? (value !== sliderSettingsByType[privilege.value]?.min ? value : sliderSettingsByType[privilege.value]?.min) : ""} onChange={({ target }: ChangeEvent) => { if (!changed) { setChanged(true) @@ -34,7 +43,7 @@ export default function NumberInputWithUnitAdornment({ id, value, adornmentText, if (!isFinite(newNumber) || newNumber < 0) { - onChange(0) + onChange(sliderSettingsByType[privilege.value]?.min) return } diff --git a/src/pages/TariffConstructor/TariffConstructor.tsx b/src/pages/TariffConstructor/TariffConstructor.tsx index 1c5fa4e..42c9f59 100644 --- a/src/pages/TariffConstructor/TariffConstructor.tsx +++ b/src/pages/TariffConstructor/TariffConstructor.tsx @@ -44,6 +44,7 @@ function TariffConstructor() { > {Object.entries(customTariffs).filter(([serviceKey]) => serviceKey === "squiz").map(([serviceKey, privileges], index) => { console.log("serviceKey ",serviceKey) + console.log(Object.entries(customTariffs)) return state.userValuesMap[privilege.serviceKey]?.[privilege._id]) ?? 0 + const userValue = useCustomTariffsStore((state) => state.userValuesMap[privilege.serviceKey]?.[privilege._id]) ?? sliderSettingsByType[privilege.value]?.min const discounts = useDiscountStore((state) => state.discounts) const currentCartTotal = useCartStore((state) => state.cart.priceAfterDiscounts) - const purchasesAmount = useUserStore((state) => state.userAccount?.wallet.spent) ?? 0 + const purchasesAmount = useUserStore((state) => state.userAccount?.wallet.spent) ?? sliderSettingsByType[privilege.value]?.min const isUserNko = useUserStore(state => state.userAccount?.status) === "nko" const [value, setValue] = useState(userValue) const throttledValue = useThrottle(value, 200) @@ -67,7 +68,7 @@ export default function TariffPrivilegeSlider({ privilege }: Props) { const setNotSmallNumber = useDebouncedCallback(() => { - if (value === 0) return + if (value === sliderSettingsByType[privilege.value]?.min) return if (Number(value) < Number(sliderSettingsByType[privilege.value]?.min)) { setValue(sliderSettingsByType[privilege.value]?.min) } @@ -99,6 +100,7 @@ export default function TariffPrivilegeSlider({ privilege }: Props) { { setValue(value) @@ -152,7 +154,7 @@ export default function TariffPrivilegeSlider({ privilege }: Props) {