import AppLayout from "components/AppLayout"; import Markdawn from "components/Markdown/Markdawn"; import ContentPanel, { ContentPanelWidthSizes, } from "components/Panels/ContentPanel"; import { GetStaticPropsContext } from "next"; import Script from "next/script"; import { AppStaticProps, getAppStaticProps } from "queries/getAppStaticProps"; import { useCallback, useState } from "react"; import { default as TurndownService } from "turndown"; interface EditorProps extends AppStaticProps {} export default function Editor(props: EditorProps): JSX.Element { const handleInput = useCallback((event) => { setMarkdown(event.target.value); }, []); const [markdown, setMarkdown] = useState(""); const contentPanel = ( Editor Convert text to markdown { const turndownService = new TurndownService({ headingStyle: "atx", codeBlockStyle: "fenced", bulletListMarker: "-", emDelimiter: "*", strongDelimiter: "**", }); let paste = event.clipboardData.getData("text/html"); paste = paste.replace(//u, ""); paste = turndownService.turndown(paste); paste = paste.replace(//u, ""); const target = event.target as HTMLTextAreaElement; target.value = paste; target.select(); event.preventDefault(); }} className="font-monospace" /> Preview ); return ( ); } export async function getStaticProps( context: GetStaticPropsContext ): Promise<{ notFound: boolean } | { props: EditorProps }> { const props: EditorProps = { ...(await getAppStaticProps(context)), }; return { props: props, }; }