From 5ae0737b2e96d71c66c89dc6e7ba5f8ce0f9d5b4 Mon Sep 17 00:00:00 2001 From: sunaurus Date: Sun, 14 Apr 2024 18:17:16 +0300 Subject: [PATCH] feat: implement basic markdown editor Currently onlu supports bold, italic, link and code blocks, including keyboard shortcuts. Also has a preview mode for rendered markdown. --- src/app/(ui)/form/TextArea.tsx | 10 +- src/app/(ui)/markdown/MarkdownTextArea.tsx | 252 ++++++++++++++++++ src/app/comment/CommentEditor.tsx | 9 +- src/app/create_post/PostEditor.tsx | 13 +- .../[userid]/PrivateMessageEditor.tsx | 7 +- src/app/settings/SettingsInputWithLabel.tsx | 6 +- 6 files changed, 276 insertions(+), 21 deletions(-) create mode 100644 src/app/(ui)/markdown/MarkdownTextArea.tsx diff --git a/src/app/(ui)/form/TextArea.tsx b/src/app/(ui)/form/TextArea.tsx index 84e912a..9ff2ddb 100644 --- a/src/app/(ui)/form/TextArea.tsx +++ b/src/app/(ui)/form/TextArea.tsx @@ -1,18 +1,18 @@ import { DetailedHTMLProps, InputHTMLAttributes } from "react"; import classNames from "classnames"; -export type Props = DetailedHTMLProps< +export type TextAreaProps = DetailedHTMLProps< InputHTMLAttributes, HTMLTextAreaElement >; -export const TextArea = ({ className, ...rest }: Props) => { +export const TextArea = ({ className, ...rest }: TextAreaProps) => { return ( + textAreaClassName={"h-32"} + />
{props.onCancel && (