import { useEffect, useState } from "react"; import { useIntl } from "react-intl"; import { Form, Input, Button, Popover } from "antd"; import { Collapse } from "antd"; import { MoreOutlined } from "@ant-design/icons"; import type { IWbw, IWbwField } from "./WbwWord" import WbwMeaningSelect from "./WbwMeaningSelect"; import WbwDetailFm from "./WbwDetailFm"; import WbwDetailParent2 from "./WbwDetailParent2"; import WbwDetailFactor from "./WbwDetailFactor"; import WbwDetailBasicRelation from "./WbwDetailBasicRelation"; import WbwDetailParent from "./WbwDetailParent"; import WbwDetailCase from "./WbwDetailCase"; import WbwDetailOrder from "./WbwDetailOrder"; const { Panel } = Collapse; export interface IWordBasic { meaning?: string[]; case?: string; factors?: string; factorMeaning?: string; parent?: string; } interface IWidget { data: IWbw; visible?: boolean; showRelation?: boolean; readonly?: boolean; onChange?: Function; onRelationAdd?: Function; } const WbwDetailBasicWidget = ({ data, visible, showRelation = true, readonly = false, onChange, onRelationAdd, }: IWidget) => { const [form] = Form.useForm(); const intl = useIntl(); const [factors, setFactors] = useState( data.factors?.value?.split("+") ); const [openCreate, setOpenCreate] = useState(false); const [_meaning, setMeaning] = useState(); const [currTip, setCurrTip] = useState(1); useEffect(() => { if (typeof data.meaning?.value === "string") { setMeaning(data.meaning?.value); } }, [data.meaning]); const onMeaningChange = (value: string) => { console.log(`Selected: ${value}`); if (typeof onChange !== "undefined") { onChange({ field: "meaning", value: value }); } }; return ( <>
{ console.log("meaning input", e.target.value); setMeaning(e.target.value); onMeaningChange(e.target.value); }} /> { console.log(meaning); setMeaning(meaning); form.setFieldsValue({ meaning: meaning, }); onMeaningChange(meaning); }} /> } trigger={readonly ? "" : "click"} overlayStyle={{ width: 500 }} placement="bottom" open={openCreate} onOpenChange={(open: boolean) => { setOpenCreate(open); }} >
setCurrTip(currTip + 1)} />
{ setFactors(value.split("+")); if (typeof onChange !== "undefined") { onChange({ field: "factors", value: value }); } }} /> setCurrTip(currTip + 1)} />
{ console.log("fm change", value); if (typeof onChange !== "undefined") { onChange({ field: "factorMeaning", value: value.join("+") }); } }} onJoin={(value: string) => { setMeaning(value); onMeaningChange(value); }} /> setCurrTip(currTip + 1)} />
{ if (typeof onChange !== "undefined") { onChange({ field: "case", value: value }); } }} /> setCurrTip(currTip + 1)} />
{ if (typeof onChange !== "undefined") { onChange({ field: "parent", value: value }); } }} /> setCurrTip(currTip + 1)} />
{ if (typeof onChange !== "undefined") { onChange(e); } }} /> { if (typeof onChange !== "undefined") { onChange(e); } }} onRelationAdd={onRelationAdd} /> ); }; export default WbwDetailBasicWidget;