* feat(chat): basic profanity filter. For #3139
* feat(chat): add setting for disabling chat spam protection. Closes#3523
* feat(chat): wire up the new chat slur filter to admin and chat. Closes#3139
* 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 <>
* - set vars for player container height and status bar height
- use them to calculate mobile top spacing to adjust for tab content positioning
* give main content section a min height, place footer absolutely at bottom; rm all the fixed footer styling
* cleanup; restructure tabbed display logic and css a bit
* Prettified Code!
* cleanup
* fix(story): footer story needs to be wrapped in RecoilRoot if it is to use Recoil
* revert adding footer to mobile about section
* prevent double scrolling
---------
Co-authored-by: gingervitis <gingervitis@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
* add the minimum stream key complexity rules on the client side
* add an admin password validator
* merge TextField and TextFieldAdmin components
* update Input Validators for Streak Keys and Admin Password
* fix a small regex typo
* code cleanup
* update Textfield and TextFieldWithSubmit
* Prettified Code!
* update the TextFieldWithSubmit component
* correct the admin password endpoind API
* refactor the Admin Password Input field and add a new boolean field for it
* refactor the Form Input field name from adminPassword to InputFieldPassword
* put password regex rules into config-constants.tsx
* regex constant typo fix
* change the boolean variable isAdminPwdField to hasComplexityRequirements
* fix a merge conflict
* Prettified Code!
---------
Co-authored-by: dorj222 <dorj222@users.noreply.github.com>
* Custom emoji editor: implement backend
This reuses the logo upload code
* Implement emoji edit admin interface
Again reuse base64 logic from the logo upload
* Allow toggling between uploaded and default emojis
* Add route that always serves uploaded emojis
This is needed for the admin emoji interface,
as otherwise the emojis will 404 if custom emojis are disabled
* Fix linter warnings
* Remove custom/uploaded emoji logic
* Reset timer after emoji deletion
* Setup: copy built-in emojis to emoji directory
* update the UI of admin video config modal
* fix the Video Config UI
* Prettified Code!
* update the VideoVarientForm.tsx
* Prettified Code!
Co-authored-by: dorj222 <dorj222@users.noreply.github.com>