* make the aria-live text adhere to the last message's username
* Wrap lastMessage in an Interweave to handle pre-encoded characters properly
---------
Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>
* Made changes to chatcontainer, still facing issue with only reading out the newest message
* Added accessibility measure for chat to allow for latest message to be read by screen reader
* Fixed linting errors
* Fixed linting errors pt. 2
* Fixed linting errors, the finale?
* Ok this is actually it i promise
* add username to be read out by screenreader
* fix string concat linter issue
* fix linting indexing issue
* remove test mp4 files
---------
Co-authored-by: melghali <melghali@andrew.cmu.edu>
* Migrate web action-buttons directory to CSF3 notation
* Migrate web chat directory to CSF3 notation
* Migrate web common directory to CSF3 notation
* Migrate web layout directory to CSF3 notation
* Migrate web modals directory to CSF3 notation
* Migrate web ui directory to CSF3 notation
* Migrate web video directory to CSF3 notation
* Migrate web stories directory to CSF3 notation
* fix emojis overflowing the chat message
* fix: force ignoring of certain paths?
---------
Co-authored-by: janWilejan <>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
We add a resize handler to the window when the ChatContainer is created. If a
second ChatContainer is created due to React redrawing, remove the old handler.
Co-authored-by: janWilejan <>
Firefox only breaks at word boundaries by default, meaning we need a horizontal
scrollbar to handle long words like AAAAAAAAAAAAAAAAAAAAAAAAAAAAA.
Co-authored-by: janWilejan <>
* change chat from a sidebar to a column
Using a 2-column layout prevents the chat scrollbar from overlapping the page
scrollbar. Also, it no longer needs to calculate extra padding for elements.
* remove unused Sidebar.tsx
* fix css for chat column
* re-center "Go to last message" button
* main content column always uses maximum height
* lint
* re-hide scrollbars in mainContent on chromium
* fix chat column width when input is over-full
* chat is only fixed-width in desktop
---------
Co-authored-by: janWilejan <>
* core: remove file extension from emoji name
* web: transform emotes to labels when sending
* chat: replace br with line break
* core: implement emoji cache
* chat: send shortcodes for custom emoji
* chat: correct esling errors
* core: move emoji injection into dedicated function
* emoji: integrate emoji into markdown renderer, fix formatting
* chat protocol: correct golangci-lint findings
* chat field: specify that the contentEditable is an HTMLElement
* admin: mention that emoji should have unique names
* Prettified Code!
* regenerate pack-lock
* chat: correct the emphasis tag, provide fallback for other elements
---------
Co-authored-by: jprjr <jprjr@users.noreply.github.com>
* highlighting: make case-insensitive, support unicode
* highlighting: also highlight simplified/normalized form
* highlighting: use MDN-recommended escape pattern
* chat: simplify input handling
Removes the cursor save/restore functionality.
Removes most key handling.
Allows message to go over limit.
Moves the message length check into SendMessage.
Changes the chat input to change to the max style only when over the limit,
rather than at the limit. Makes it apparent that something is wrong.
Fixes#3121
* Prettified Code!
---------
Co-authored-by: jprjr <jprjr@users.noreply.github.com>
users who want to show repeat usernames can inject the following CSS:
[class^="ChatUserMessage_repeatUser"]{display:flex !important;}
Co-authored-by: janWilejan <>
* feat(mobile): refactor mobile chat into modal
- Make page always scrollable
- Move mobile chat into a standalone modal
* fix(test): split out mobile browser test specs
* fix(mobile): force chat button to render on top of footer
* fix: some small updates from review
* fix: hide/show hide chat menu option based on width
* fix: chat button icon getting cut off
* chore(tests): add browser tests for mobile chat modal
* chore(tests): add story for ChatModal component
* fix(test): quiet shellcheck
* fix: remove unused import
* fix(tests): silence storybook linting warning
* fix(ui): reposition chat modal button icon with transform