import { useIntl } from "react-intl"; import { ProForm, type ProFormInstance, ProFormSelect, ProFormText, } from "@ant-design/pro-components"; import { Alert, Space, message } from "antd"; import { get, post } from "../../request"; import type { IAnthologyListResponse, IArticleCreateRequest, IArticleDataResponse, IArticleResponse, } from "../../api/Article"; import LangSelect from "../general/LangSelect"; import { useEffect, useRef, useState } from "react"; interface IFormData { title: string; lang: string; studio: string; anthologyId?: string; parentId?: string; } interface IWidget { studio?: string; anthologyId?: string; parentId?: string | null; compact?: boolean; onSuccess?: (data: IArticleDataResponse) => void; } const ArticleCreateWidget = ({ studio, parentId, compact = true, onSuccess, }: IWidget) => { const intl = useIntl(); const formRef = useRef(undefined); const [parent, setParent] = useState(); console.log("parentId", parentId); useEffect(() => { if (parentId) { get(`/v2/article/${parentId}`).then((json) => { console.log("article", json); if (json.ok) { setParent(json.data); } }); } }, []); return ( {parentId ? ( ) : undefined} formRef={formRef} onFinish={async (values: IFormData) => { console.log(values); if (typeof studio === "undefined") { return; } values.studio = studio; values.parentId = parentId ? parentId : undefined; const res = await post( `/v2/article`, values ); console.log(res); if (res.ok) { message.success(intl.formatMessage({ id: "flashes.success" })); if (typeof onSuccess !== "undefined") { onSuccess(res.data); formRef.current?.resetFields(["title"]); } } else { message.error(res.message); } }} > ); }; export default ArticleCreateWidget;