import { useEffect, useState } from "react"; import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "@/components/ds/ui/dialog"; import { Loader2 } from "lucide-react"; import { useTranslate } from "ra-core"; interface ChangelogModalProps { open: boolean; onOpenChange: (open: boolean) => void; } export const ChangelogModal = ({ open, onOpenChange }: ChangelogModalProps) => { const [content, setContent] = useState(""); const [loading, setLoading] = useState(false); const translate = useTranslate(); useEffect(() => { if (open && !content) { setLoading(true); fetch("/CHANGELOG.md") .then((res) => res.text()) .then((text) => { setContent(text); setLoading(false); }) .catch((err) => { console.error("Failed to fetch changelog:", err); setContent("Failed to load changelog."); setLoading(false); }); } }, [open, content]); return ( 🚀 {translate("crm.changelog.title", { _: "What's New" })}
{loading ? (
) : (
{content}
)}
); };