import { useEffect, useState } from "react";

import {
	Button,
	Drawer,
	DrawerContent,
	DrawerOverlay,
	DrawerBody,
	useDisclosure,
} from "@chakra-ui/react";
import { FiHelpCircle } from "react-icons/fi";
import ReactMarkdown from "react-markdown";

import { getLocale } from "src/locale";
import { getHelpFile } from "src/locale/src/HelpDoc";

interface HelpDrawerProps {
	/**
	 * Section to show
	 */
	section: string;
}
function HelpDrawer({ section }: HelpDrawerProps) {
	const { isOpen, onOpen, onClose } = useDisclosure();
	const [markdownText, setMarkdownText] = useState("");
	const lang = getLocale(true);

	useEffect(() => {
		try {
			const docFile = getHelpFile(lang, section) as any;
			fetch(docFile)
				.then((response) => response.text())
				.then(setMarkdownText);
		} catch (ex: any) {
			setMarkdownText(`**ERROR:** ${ex.message}`);
		}
	}, [lang, section]);

	return (
		<>
			<Button size="sm" onClick={onOpen}>
				<FiHelpCircle />
			</Button>
			<Drawer onClose={onClose} isOpen={isOpen} size="xl">
				<DrawerOverlay />
				<DrawerContent>
					<DrawerBody className="helpdoc-body">
						<ReactMarkdown>{markdownText}</ReactMarkdown>
					</DrawerBody>
				</DrawerContent>
			</Drawer>
		</>
	);
}

export { HelpDrawer };