Some checks failed
Dependency builds / Build web (pull_request) Has been skipped
Dependency builds / Build desktop (pull_request) Has been skipped
Dependency builds / Test native MTP (pull_request) Has been skipped
Dependency builds / Build mobile (pull_request) Has been skipped
/ release (push) Has been cancelled
/ build-web (push) Has been cancelled
/ build-desktop (linux) (push) Has been cancelled
/ build-mobile (push) Has been cancelled
30 lines
667 B
TypeScript
30 lines
667 B
TypeScript
import { useMemo, type CSSProperties } from "react";
|
|
|
|
import {
|
|
ensureMarkdownStyles,
|
|
parseMarkdownBlocks,
|
|
renderBlocks,
|
|
} from "./markdown";
|
|
|
|
export type TextProps = {
|
|
value: string;
|
|
fontSize?: CSSProperties["fontSize"];
|
|
};
|
|
|
|
/**
|
|
* Executes Text.
|
|
* @param props Parameter props.
|
|
* @returns unknown.
|
|
*/
|
|
export default function Text(props: TextProps) {
|
|
ensureMarkdownStyles();
|
|
|
|
const blocks = useMemo(() => parseMarkdownBlocks(props.value), [props.value]);
|
|
const renderedBlocks = useMemo(() => renderBlocks(blocks), [blocks]);
|
|
|
|
return (
|
|
<div className="tm-md-root" style={{ fontSize: props.fontSize }}>
|
|
{renderedBlocks}
|
|
</div>
|
|
);
|
|
}
|