import styles from "./index.less"; import React, { useState } from "react"; import { Form, Input, Select, Button } from "antd"; const { Option } = Select; interface PriceValue { number?: number; currency?: "rmb" | "dollar"; } interface PriceInputProps { value?: PriceValue; onChange?: (value: PriceValue) => void; } const PriceInput: React.FC = ({ value = {}, onChange }) => { const [number, setNumber] = useState(0); const [currency, setCurrency] = useState("rmb"); const triggerChange = (changedValue) => { if (onChange) { onChange({ number, currency, ...value, ...changedValue }); } }; const onNumberChange = (e) => { const newNumber = parseInt(e.target.value || 0, 10); if (Number.isNaN(number)) { return; } if (!("number" in value)) { setNumber(newNumber); } triggerChange({ number: newNumber }); }; const onCurrencyChange = (newCurrency) => { if (!("currency" in value)) { setCurrency(newCurrency); } triggerChange({ currency: newCurrency }); }; return ( ); }; const Demo = () => { const onFinish = (values) => { console.log("Received values from form: ", values); }; const checkPrice = (rule, value) => { if (value.number > 0) { return Promise.resolve(); } return Promise.reject("Price must be greater than zero!"); }; return (
); }; export default () => (
);