@nlabs/gothamjs
Version:
Platform
39 lines (38 loc) • 4 kB
JavaScript
import { useEffect, useState } from "react";
import ReactMarkdown from "react-markdown";
import { fetchJsonFromUrl, parseTemplate } from "../../utils/contentUtils.js";
import { jsx } from "react/jsx-runtime";
const MarkdownView = ({
className = "",
content,
url,
values = {}
}) => {
const [markdown, setMarkdown] = useState("");
useEffect(() => {
const loadContent = async () => {
try {
if (url) {
const data = await fetchJsonFromUrl(url);
setMarkdown(parseTemplate(data, values));
} else if (content) {
setMarkdown(parseTemplate(content, values));
}
} catch (error) {
console.error("Failed to load markdown content:", error);
setMarkdown("Error loading content");
}
};
loadContent();
}, [url, content, values]);
return /* @__PURE__ */ jsx("div", { className: `markdown-container ${className}`, style: {
backgroundColor: "transparent",
height: "100%",
overflow: "auto",
width: "100%"
}, children: /* @__PURE__ */ jsx(ReactMarkdown, { children: markdown }) });
};
export {
MarkdownView
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZpZXdzL01hcmtkb3duVmlldy9NYXJrZG93blZpZXcudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RNYXJrZG93biBmcm9tICdyZWFjdC1tYXJrZG93bic7XG5cbmltcG9ydCB7ZmV0Y2hKc29uRnJvbVVybCwgcGFyc2VUZW1wbGF0ZX0gZnJvbSAnLi4vLi4vdXRpbHMvY29udGVudFV0aWxzLmpzJztcblxuXG5pbnRlcmZhY2UgTWFya2Rvd25WaWV3UHJvcHMge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAgdmFsdWVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBjb25zdCBNYXJrZG93blZpZXc6IFJlYWN0LkZDPE1hcmtkb3duVmlld1Byb3BzPiA9ICh7XG4gIGNsYXNzTmFtZSA9ICcnLFxuICBjb250ZW50LFxuICB1cmwsXG4gIHZhbHVlcyA9IHt9XG59KSA9PiB7XG4gIGNvbnN0IFttYXJrZG93biwgc2V0TWFya2Rvd25dID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBsb2FkQ29udGVudCA9IGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uRnJvbVVybCh1cmwpO1xuICAgICAgICAgIHNldE1hcmtkb3duKHBhcnNlVGVtcGxhdGUoZGF0YSBhcyBzdHJpbmcsIHZhbHVlcykpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnQpIHtcbiAgICAgICAgICBzZXRNYXJrZG93bihwYXJzZVRlbXBsYXRlKGNvbnRlbnQsIHZhbHVlcykpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBtYXJrZG93biBjb250ZW50OicsIGVycm9yKTtcbiAgICAgICAgc2V0TWFya2Rvd24oJ0Vycm9yIGxvYWRpbmcgY29udGVudCcpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBsb2FkQ29udGVudCgpO1xuICB9LCBbdXJsLCBjb250ZW50LCB2YWx1ZXNdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgbWFya2Rvd24tY29udGFpbmVyICR7Y2xhc3NOYW1lfWB9IHN0eWxlPXt7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIG92ZXJmbG93OiAnYXV0bycsXG4gICAgICB3aWR0aDogJzEwMCUnXG4gICAgfX0+XG4gICAgICA8UmVhY3RNYXJrZG93bj57bWFya2Rvd259PC9SZWFjdE1hcmtkb3duPlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQWUsV0FBVyxnQkFBZTtBQUN6QyxPQUFPLG1CQUFtQjtBQUUxQixTQUFRLGtCQUFrQixxQkFBb0I7QUEyQ3hDO0FBakNDLE1BQU0sZUFBNEMsQ0FBQztBQUFBLEVBQ3hELFlBQVk7QUFBQSxFQUNaO0FBQUEsRUFDQTtBQUFBLEVBQ0EsU0FBUyxDQUFDO0FBQ1osTUFBTTtBQUNKLFFBQU0sQ0FBQyxVQUFVLFdBQVcsSUFBSSxTQUFpQixFQUFFO0FBRW5ELFlBQVUsTUFBTTtBQUNkLFVBQU0sY0FBYyxZQUFZO0FBQzlCLFVBQUk7QUFDRixZQUFJLEtBQUs7QUFDUCxnQkFBTSxPQUFPLE1BQU0saUJBQWlCLEdBQUc7QUFDdkMsc0JBQVksY0FBYyxNQUFnQixNQUFNLENBQUM7QUFBQSxRQUNuRCxXQUFXLFNBQVM7QUFDbEIsc0JBQVksY0FBYyxTQUFTLE1BQU0sQ0FBQztBQUFBLFFBQzVDO0FBQUEsTUFDRixTQUFTLE9BQU87QUFDZCxnQkFBUSxNQUFNLG9DQUFvQyxLQUFLO0FBQ3ZELG9CQUFZLHVCQUF1QjtBQUFBLE1BQ3JDO0FBQUEsSUFDRjtBQUVBLGdCQUFZO0FBQUEsRUFDZCxHQUFHLENBQUMsS0FBSyxTQUFTLE1BQU0sQ0FBQztBQUV6QixTQUNFLG9CQUFDLFNBQUksV0FBVyxzQkFBc0IsU0FBUyxJQUFJLE9BQU87QUFBQSxJQUN4RCxpQkFBaUI7QUFBQSxJQUNqQixRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsRUFDVCxHQUNFLDhCQUFDLGlCQUFlLG9CQUFTLEdBQzNCO0FBRUo7IiwKICAibmFtZXMiOiBbXQp9Cg==