Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rich Text Editor events #80

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open

Rich Text Editor events #80

wants to merge 7 commits into from

Conversation

langleyd
Copy link
Contributor

@langleyd langleyd commented Mar 27, 2023

  • Add editor enum (Legacy, RteFormatting, RtePlain) to existing and new composer events(Composer+ SlashCommand).
  • Add Mention and FormattedMessage events.
  • Add isMarkdownEnabled

Questions we are trying to answer with these events

  • What does the adoption of the new Rich Text Editor look like?
  • Overall feature retention. Are people abandoning the new editor?
  • What patterns of use do we see? E.g. Are they switching between plain/rich text mode or leaving rich text on?
  • Are formatting features more used on the new editor now that it is WYSIWYG style?
  • Are slash commands broadly/commonly used? Which ones are useful? What are candidates to move to Mobile/EX?

- Add `isRichTextEditor` to existing and new composer events(Composer + SlashCommand).
- Add Mention and FormattedMessage events.
schemas/FormattedMessage.json Outdated Show resolved Hide resolved
schemas/FormattedMessage.json Outdated Show resolved Hide resolved
schemas/Composer.json Outdated Show resolved Hide resolved
- Fix typos and formatting
- Add `isMarkdownEnabled` and `isPlainTextMode`
@langleyd langleyd marked this pull request as ready for review April 18, 2023 14:04
@langleyd langleyd requested a review from a team as a code owner April 18, 2023 14:04
schemas/Composer.json Outdated Show resolved Hide resolved
@germain-gg germain-gg removed their request for review April 21, 2023 08:32
@langleyd langleyd requested a review from t3chguy April 21, 2023 08:49
Comment on lines 12 to 61
"Spoiler",
"Shrug",
"TableFlip",
"Unflip",
"Lenny",
"Plain",
"Html",
"UpgradeRoom",
"JumpToDate",
"Nick",
"MyRoomNick",
"RoomAvatar",
"MyRoomAvatar",
"MyAvatar",
"Topic",
"RoomName",
"Invite",
"Join",
"Part",
"Invite"
"Remove",
"Ban",
"Unban",
"Ignore",
"Unignore",
"Op",
"Deop",
"DevTools",
"AddWidget",
"Verify",
"DiscardSession",
"RemakeOlm",
"Rainbow",
"RainbowMe",
"Help",
"Whois",
"Rageshake",
"ToVirtual",
"Query",
"Msg",
"HoldCall",
"UnholdCall",
"ConvertToDM",
"ConvertToRoom",
"Me",
"Confetti",
"Fireworks",
"Hearts",
"Rainfall",
"Snowfall",
"SpaceInvaders"
Copy link
Member

@t3chguy t3chguy Apr 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should only be tracking things to answer specific product questions, what question do these answer? Also this list is unmaintainable given its infeasible to ask contributors adding commands to also need to add them in a separate repo. The existing enum entries here were to track room leave & room invite flows respectively.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought it would be good from a product perspective to know which commands were actually getting used and then we could refine the commands to just those. But I will defer to product on that. @jakewb-b What do you think is useful to track?

Copy link
Contributor Author

@langleyd langleyd Apr 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also it seems sensible to me that if we are adding commands that we would track it to understand it's validity and avoid having extraneous product surface/ UX complexity.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be useful to have this info, for the reasons David's given, although not essential. In practice I don't know how likely we are to come back and remove slash commands that see little usage, and if we do want to make that effort there are probably other qualitative ways we can make the decision.

So, I guess it depends on how difficult it is to maintain this vs the value it offers. My take is that I'd quite like it, but I'm not going to insist on it if it creates more problems.

Copy link
Contributor Author

@langleyd langleyd Apr 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could always add it for period of time to gather the data of how broadly/commonly slash commands as a feature is used and which commands users find most useful. Once we have answered those questions we could remove the tracking of the full set so it is more maintainable. WDYT @t3chguy ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even if we don't remove old ones on Web it could inform what is valuable to add to mobile and EX.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I appreciate the question btw, I should have been more explicit. I have added a section to the description. Maybe we should add that question to a pull request template?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think an enum here is infeasible, there's so many apps to keep in sync. A string is more appropriate.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea that crossed my mind and I was unsure. I thought an enum might make it more obvious what differences there was across platforms and with an enum a dev could be informed at compile time what they were explicitly ignoring. But happy to go with a string.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

with an enum a dev could be informed at compile time what they were explicitly ignoring. But happy to go with a string.

For TS at least unless all the strings matched exactly (fully lowercase) the type would have to be entirely ignored

"Snowfall",
"SpaceInvaders"
]
"description": "The the slash command text. e.g. /me ",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this make sense @t3chguy ?

So you might nee update any reports you have that use the old format(Part/Invite)?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm good point, losing historical data would not be good. Not sure what the best solution is here then.

@bmarty
Copy link
Collaborator

bmarty commented Mar 15, 2024

Any update on this PR @langleyd ? Just asking since I am seeing it, there is no rush.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants