Files
hatchet/frontend/docs/components/code/CodeStyleRender.tsx
abelanger5 b0c6c7cd46 feat(go-sdk): cron and schedules API, minor fixes (#1083)
* feat(go-sdk): cron and schedules API, minor fixes

* try to improve code block and docs

* revert pre-commit

* fix: generate

* fix: put overflow in right place

* remove branch specs
2024-12-04 21:18:05 +00:00

41 lines
947 B
TypeScript

"use client";
import { useTheme } from "nextra-theme-docs";
import React, { useEffect, useState, useMemo } from "react";
import { codeToHtml } from "shiki";
interface CodeStyleRenderProps {
parsed: string;
language: string;
}
const CodeStyleRender = ({ parsed, language }: CodeStyleRenderProps) => {
const [html, setHtml] = useState<string>("");
const theme = useTheme();
const themeName = useMemo(() => {
return theme.resolvedTheme === "dark" ? "github-dark" : "github-light";
}, [theme.resolvedTheme]);
useEffect(() => {
const asyncHighlight = async () => {
const highlightedHtml = await codeToHtml(parsed, {
lang: language.toLowerCase(),
theme: themeName,
});
setHtml(highlightedHtml);
};
asyncHighlight();
}, [parsed, language, themeName]);
return (
<>
<div dangerouslySetInnerHTML={{ __html: html }}></div>
</>
);
};
export default CodeStyleRender;