| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import { Drawer } from "antd";
- import React, { useEffect, useState } from "react";
- import type { IArticleDataResponse } from "../../api/Article";
- import ArticleEdit from "./ArticleEdit";
- interface IWidget {
- trigger?: React.ReactNode;
- articleId?: string;
- anthologyId?: string;
- open?: boolean;
- onClose?: Function;
- onChange?: Function;
- }
- const ArticleEditDrawerWidget = ({
- trigger,
- articleId,
- anthologyId,
- open,
- onClose,
- onChange,
- }: IWidget) => {
- const [openDrawer, setOpenDrawer] = useState(open);
- const [title, setTitle] = useState("loading");
- const [readonly, setReadonly] = useState(false);
- const [_studioName, setStudioName] = useState<string>();
- useEffect(() => setOpenDrawer(open), [open]);
- const showDrawer = () => {
- setOpenDrawer(true);
- };
- const onDrawerClose = () => {
- setOpenDrawer(false);
- if (document.getElementsByTagName("body")[0].hasAttribute("style")) {
- document.getElementsByTagName("body")[0].removeAttribute("style");
- }
- if (typeof onClose !== "undefined") {
- onClose();
- }
- };
- return (
- <>
- <span onClick={() => showDrawer()}>{trigger}</span>
- <Drawer
- title={title + (readonly ? "(只读)" : "")}
- width={1000}
- placement="right"
- onClose={onDrawerClose}
- open={openDrawer}
- destroyOnHidden={true}
- >
- <ArticleEdit
- anthologyId={anthologyId}
- articleId={articleId}
- onReady={(title: string, readonly: boolean, studio?: string) => {
- setTitle(title);
- setReadonly(readonly);
- setStudioName(studio);
- }}
- onChange={(data: IArticleDataResponse) => {
- if (typeof onChange !== "undefined") {
- onChange(data);
- }
- }}
- />
- </Drawer>
- </>
- );
- };
- export default ArticleEditDrawerWidget;
|