1
Fork 0
mirror of https://github.com/Steffo99/festa.git synced 2024-12-23 15:14:23 +00:00
festa/components/editable/EditableMarkdown.tsx

17 lines
655 B
TypeScript
Raw Normal View History

2022-06-04 03:13:19 +00:00
import { HTMLProps } from "react";
2022-06-08 16:00:39 +00:00
import { EditingContext } from "./EditingContext";
2022-06-04 03:13:19 +00:00
import { useDefinedContext } from "../../utils/definedContext";
import { FestaMarkdown } from "../extensions/FestaMarkdown";
2022-06-08 16:00:39 +00:00
/**
* Controlled input component which displays a `textarea` in editing mode, and renders the input in Markdown using {@link FestaMarkdown} in preview mode.
*/
2022-06-04 03:13:19 +00:00
export function EditableMarkdown({value, ...props}: HTMLProps<HTMLTextAreaElement>) {
const [editing,] = useDefinedContext(EditingContext)
return editing ? (
<textarea value={value} {...props}/>
) : (
<FestaMarkdown markdown={value as string}/>
)
}