import ContentPanel, { ContentPanelWidthSizes, } from "components/Panels/ContentPanel"; import { getWebsiteInterface } from "graphql/operations"; import { GetStaticProps } from "next"; import { GetWebsiteInterfaceQuery } from "graphql/operations-types"; import AppLayout from "components/AppLayout"; import { useCallback, useState } from "react"; import Markdawn from "components/Markdown/Markdawn"; import Script from "next/script"; type EditorProps = { langui: GetWebsiteInterfaceQuery; }; export default function Editor(props: EditorProps): JSX.Element { const langui = props.langui.websiteInterfaces.data[0].attributes; const handleInput = useCallback((e) => { setMarkdown(e.target.value); }, []); const [markdown, setMarkdown] = useState(""); const contentPanel = ( Editor Convert text to markdown { const TurndownService = require("turndown").default; const turndownService = new TurndownService({ headingStyle: "atx", codeBlockStyle: "fenced", bulletListMarker: "-", emDelimiter: "*", strongDelimiter: "**", }); let paste = event.clipboardData.getData("text/html"); paste = paste.replace(/<\!--.*?-->/g, ""); paste = turndownService.turndown(paste); paste = paste.replace(/<\!--.*?-->/g, ""); const target = event.target as HTMLTextAreaElement; target.value = paste; target.select(); event.preventDefault(); }} className="bg-mid rounded-xl p-8 w-full font-monospace" /> Preview ); return ( ); } export const getStaticProps: GetStaticProps = async (context) => { if (context.locale) { const props: EditorProps = { langui: await getWebsiteInterface({ language_code: context.locale, }), }; return { props: props, }; } return { props: {} }; };