import React from "react"; import { getFileType, languageMap } from "./utils"; import { HtmlViewer } from "./HtmlViewer"; import { MarkdownViewer } from "./MarkdownViewer"; import { CodeViewer } from "./CodeViewer"; import { CSVViewer } from "./CSVViewer"; import { ChartViewer } from "./ChartViewer"; import { DiffViewer } from "./DiffViewer"; import { ViewerStyle } from "./types"; interface UniversalViewerProps { content: string; fileName?: string; style?: ViewerStyle; } export const UniversalViewer: React.FC = ({ content, fileName = "", style = {}, }) => { const getViewer = () => { const defaultStyles = { width: "100%", height: "100%", overflow: "auto", ...style, }; const fileType = fileName?.split(".").pop()?.toLowerCase() || ""; const type = getFileType(fileType); switch (type) { case "html": return ; case "markdown": return ; case "csv": return ; // case 'pdf': // return ; // case 'image': // return ; case "chart": return ; case "diff": return ; default: const language = languageMap[fileType] || "text"; return ( ); } }; return (
{getViewer()}
); };