import { Button, Drawer, Space, Typography } from "antd";
import React, { useEffect, useState } from "react";
import { Link } from "react-router";
import Article, { type ArticleMode, ArticleType } from "./Article";
import type { IArticleDataResponse } from "../../api/Article";
const { Text } = Typography;
interface IWidget {
trigger?: React.ReactNode;
title?: string;
type?: ArticleType;
book?: string;
para?: string;
channelId?: string;
articleId?: string;
anthologyId?: string;
mode?: ArticleMode;
open?: boolean;
onClose?: Function;
onTitleChange?: Function;
onArticleEdit?: Function;
}
const ArticleDrawerWidget = ({
trigger,
title,
type,
book,
para,
channelId,
articleId,
anthologyId,
mode,
open,
onClose,
onTitleChange,
onArticleEdit,
}: IWidget) => {
const [openDrawer, setOpenDrawer] = useState(open);
const [drawerTitle, setDrawerTitle] = useState(title);
useEffect(() => setOpenDrawer(open), [open]);
useEffect(() => setDrawerTitle(title), [title]);
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();
}
};
const getUrl = (openMode?: string): string => {
let url = `/article/${type}/${articleId}?mode=`;
url += openMode ? openMode : mode ? mode : "read";
url += channelId ? `&channel=${channelId}` : "";
url += book ? `&book=${book}` : "";
url += para ? `&par=${para}` : "";
return url;
};
return (
<>
showDrawer()}>{trigger}
{
setDrawerTitle(value);
if (typeof onTitleChange !== "undefined") {
onTitleChange(value);
}
},
}}
>
{drawerTitle}
}
width={1000}
placement="right"
onClose={onDrawerClose}
open={openDrawer}
destroyOnHidden={true}
extra={
}
>
{
setDrawerTitle(value.title_text);
if (typeof onArticleEdit !== "undefined") {
onArticleEdit(value);
}
}}
/>
>
);
};
export default ArticleDrawerWidget;