diff --git a/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationHeader.tsx b/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationHeader.tsx index ca5d86e8..0086de24 100644 --- a/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationHeader.tsx +++ b/servers/nextjs/app/(presentation-generator)/presentation/components/PresentationHeader.tsx @@ -37,6 +37,7 @@ import ThemeSelector from "./ThemeSelector"; import { DEFAULT_THEMES } from "../../(dashboard)/theme/components/ThemePanel/constants"; import ThemeApi from "../../services/api/theme"; import { Theme } from "../../services/api/types"; +import MarkdownRenderer from "@/components/MarkDownRender"; const PresentationHeader = ({ presentation_id, @@ -181,6 +182,7 @@ const PresentationHeader = ({ onClick={() => { trackEvent(MixpanelEvent.Header_Export_PDF_Button_Clicked, { pathname }); handleExportPdf(); + setOpen(false); }} variant="ghost" className={` rounded-none px-0 w-full text-xs flex justify-start text-black hover:bg-transparent ${mobile ? "bg-white py-6 border-none rounded-lg" : ""}`} > @@ -192,6 +194,7 @@ const PresentationHeader = ({ onClick={() => { trackEvent(MixpanelEvent.Header_Export_PPTX_Button_Clicked, { pathname }); handleExportPptx(); + setOpen(false); }} variant="ghost" className={`w-full flex px-0 justify-start text-xs text-black hover:bg-transparent ${mobile ? "bg-white py-6" : ""}`} @@ -212,7 +215,7 @@ const PresentationHeader = ({ return ( <>
-

{presentationData?.title || "Presentation"}

+

{isPresentationSaving &&
diff --git a/servers/nextjs/components/MarkDownRender.tsx b/servers/nextjs/components/MarkDownRender.tsx new file mode 100644 index 00000000..7a8b9775 --- /dev/null +++ b/servers/nextjs/components/MarkDownRender.tsx @@ -0,0 +1,38 @@ +"use client"; + +import React, { useState, useEffect } from "react"; + +import { marked } from "marked"; +import { cn } from "@/lib/utils"; + +interface MarkdownRendererProps { + content: string; + className?: string; +} + +const MarkdownRenderer: React.FC = ({ content, className }) => { + const [markdownContent, setMarkdownContent] = useState(""); + + useEffect(() => { + const parseMarkdown = async () => { + try { + const parsed = await marked.parse(content); + setMarkdownContent(parsed); + } catch (error) { + console.error("Error parsing markdown:", error); + setMarkdownContent(""); + } + }; + + parseMarkdown(); + }, [content]); + + return ( +
+ ); +}; + +export default MarkdownRenderer; \ No newline at end of file