Optimized the chat so that resuming PiP does not cause stutters.
This new implementation makes it so that only the latest (100) messages are
rendered at any given time, rather than every single one.
Once autoscroll is disabled and we scroll up in chat, the most recent
messages will be added to a buffer to prevent shifting.
Essentially, I've made it so that the default chat shows only the (100)
most recent messages. When you want to scroll back, the chat will
silently switch to the version with the last (10000) messages, giving
the best of both worlds in performance and scrollback history.
Removed the redundant request for Twitch global and channel emotes in getAssets().
Since these emotes will be processed anyways when generating the span, there's no point in wasting bandwidth to fetch and store them.
- Added enum for IRC tag command for slightly better comparisons
- Moved span portion of renderMessage to its own function in irc_api.dart
- Moved message remove and end scroll to seperate function action
- Fixed emote tags applying to all users
- Moved parse method to factory constructor in IRCMessage for better readability
- Renamed irc_message.dart to irc.dart to include other irc-related models
- Added ROOMSTATE model
- Moved addMessage functionality to chat store