Newer
Older
hello-programmer-world / src / components / RenderFile.tsx
@h.sakamoto h.sakamoto on 17 Dec 753 bytes css.mdx
import readRawText from "@/lib/getRawText";
import { useEffect, useState } from "preact/hooks";

type RenderHtmlProps = {
  path: string;
};

export default function RenderFile(props: RenderHtmlProps) {
  const [htmlContent, setHtmlContent] = useState<string>(
    readRawText(props.path),
  );

  useEffect(() => {
    const text = readRawText(props.path);
    setHtmlContent(text);
  }, [props.path]);

  return (
    <div
      style={{
        border: "1px solid #ccc",
        borderRadius: "8px",
        padding: "16px",
        marginBottom: "var(--base-size-16, 1rem)",
      }}
    >
      <iframe
        srcDoc={htmlContent}
        style={{
          border: "1px solid #ccc",
          width: "100%",
        }}
      />
    </div>
  );
}