Rich message rendering
Not sure how I feel about a function that creates classes. Can we inherit from a base class instead?
Just created empty room throws error on rooms and directs loading
If you see the events in the timeline, they're passed as timeline events, not state events. Probably nothing to worry about.
Just created empty room throws error on rooms and directs loading
Just created empty room throws error on rooms and directs loading
Maybe fixed in e18c8c77aef6a5ac36b2a9c22daa8f3fb8efb7cb? Please try, you can use https://carbon.chat to find out.
Sending empty messages
How do you think we should check for if a message is empty? If body.trim().length is 0 ?
Refactor homeserver lookup code
Why chain a promise catch here? I don't have a problem with promise chaining, it's just weird considering that we used the try/catch syntax 3 lines up. IMO they should be made consistent?