import Decimal from "decimal.js"; import { ControllerRenderProps } from "react-hook-form"; import { selectedSymbolStore } from "../../../../store"; import { useStepSize } from "../../../useStepSize"; import { useUserSelectedUserAssets } from "../../../useUserSelectedUserAssets"; import { MarketOrderValues, SellForm } from "../types"; const ControllerSlider = ({ render, }: { render: (state: { field: ControllerRenderProps; }) => any; }) => { const { selectedSymbol } = selectedSymbolStore.useState(); const { setValue, trigger } = SellForm.useFormContext(); const { toStepSize } = useStepSize(selectedSymbol?.symbol, "limit"); const { baseAvailableRemain } = useUserSelectedUserAssets(); return ( render({ field: { onChange: (_value) => { onChange(_value); let result: Decimal | string = ""; if (_value && baseAvailableRemain) { result = toStepSize( new Decimal(baseAvailableRemain).mul(_value), ); } setValue("amount", result.toString()); setValue("selectedOption", { value: "amount" }); trigger(["amount", "total"]); }, ...rest, }, }) } /> ); }; export { ControllerSlider };