Edit option (#1447)

* add func to parse html to editor input

* add  plain to html input function

* re-construct markdown

* fix missing return

* fix falsy condition

* fix reading href instead of src of emoji

* add message editor - WIP

* fix plain to editor input func

* add save edit message functionality

* show edited event source code

* focus message input on after editing message

* use del tag for strike-through instead of s

* prevent autocomplete from re-opening after esc

* scroll out of view msg editor in view

* handle up arrow edit

* handle scroll to message editor without effect

* revert prev commit: effect run after editor render

* ignore relation event from editable

* allow data-md tag for del and em in sanitize html

* prevent edit without changes

* ignore previous reply when replying to msg

* fix up arrow edit not working sometime
This commit is contained in:
Ajay Bura
2023-10-14 16:08:43 +11:00
committed by GitHub
parent 152576e85d
commit f5bcc9b851
18 changed files with 957 additions and 108 deletions

View File

@@ -23,13 +23,9 @@ export type FormattedText = Text & {
export type LinkElement = {
type: BlockType.Link;
href: string;
children: FormattedText[];
};
export type SpoilerElement = {
type: 'spoiler';
alert?: string;
children: FormattedText[];
children: Text[];
};
export type MentionElement = {
type: BlockType.Mention;
id: string;
@@ -44,14 +40,16 @@ export type EmoticonElement = {
children: Text[];
};
export type InlineElement = Text | LinkElement | MentionElement | EmoticonElement;
export type ParagraphElement = {
type: BlockType.Paragraph;
children: FormattedText[];
children: InlineElement[];
};
export type HeadingElement = {
type: BlockType.Heading;
level: HeadingLevel;
children: FormattedText[];
children: InlineElement[];
};
export type CodeLineElement = {
type: BlockType.CodeLine;
@@ -63,7 +61,7 @@ export type CodeBlockElement = {
};
export type QuoteLineElement = {
type: BlockType.QuoteLine;
children: FormattedText[];
children: InlineElement[];
};
export type BlockQuoteElement = {
type: BlockType.BlockQuote;
@@ -71,7 +69,7 @@ export type BlockQuoteElement = {
};
export type ListItemElement = {
type: BlockType.ListItem;
children: FormattedText[];
children: InlineElement[];
};
export type OrderedListElement = {
type: BlockType.OrderedList;
@@ -84,7 +82,6 @@ export type UnorderedListElement = {
export type CustomElement =
| LinkElement
// | SpoilerElement
| MentionElement
| EmoticonElement
| ParagraphElement