Commit Graph
256 Commits
Author SHA1 Message Date
Gabe Kangas 5438ab8ea0 chore(js): fix js formatting 2026-01-10 15:37:26 -08:00
Gabe Kangas 53a6166d4b chore(js): fix js formatting 2026-01-10 15:35:30 -08:00
05341aced0 feat: add readonly-chat class to readonly embed (#4714)
Adds a 'readonly' prop to ChatContainer that conditionally applies a
'readonly-chat' CSS class to the chat container element. This allows
streamers using OBS to target the readonly chat embed with custom CSS.

The readonly embed at /embed/chat/readonly now passes readonly={true}
to ChatContainer, which adds the class to the container div.

Fixes #4266

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2026-01-03 13:04:51 -08:00
ab06b218e3 Fix: Fix to show color when user join the chat (#4706)
* Fix: Fix to show color when user join the chat

* Changes to restore unnecesary changes

* Deleting unnecesary changes

* Identation issues fixed

* fix(js): run prettier against changed code

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2025-12-26 16:45:30 -08:00
a1f7f599c8 Allow emoji picker to fit smaller viewports (#4651)
* fixed 4493 issue

* Update web/components/chat/ChatTextField/ChatTextField.module.scss

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* lint error fix

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-10 14:00:11 -08:00
서정현andGitHub 24cd89a114 chore(deps): update prettier to version 3.6.2 and adjust peer dependencies in package-lock.json (#4663) 2025-11-03 09:09:01 -08:00
Gabe Kangas 3a756201ea chore(css): run stylelint 2025-10-24 00:15:12 -07:00
Gabe Kangas 4b9845c7c8 Format sass files 2025-10-24 00:08:29 -07:00
Gabe Kangas c7d78f4224 Use updated sass import syntax 2025-10-23 23:27:10 -07:00
Gabe KangasandGitHub cc9286416c Update storybook to v9 (#4645)
* chore: Update storybook to v9

* Pin next-export-i18n + remove outdated mock library

* Replace old mocking library with MSW

* Resolve knip unused code warnings
2025-10-20 21:26:32 -07:00
CopilotGitHubgabekcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>Gabe KangasOwncast
275339bdf0 Add localization support for chat message components with enhanced Translation component (#4560)
* Initial plan

* Add localization support for chat message components

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Update chat message localization to use string interpolation

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Restore original styling while preserving string interpolation

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Separate styling from variables in translation templates

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Revert to concatenation approach for chat message localization

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Add id property to Translation component and restore missing CSS classes and IDs

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Javascript formatting autofixes

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Owncast <owncast@owncast.online>
2025-09-16 00:13:13 -07:00
CopilotGitHubgabekcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>Gabe Kangas
84eaa60ec9 Add static class names to UI elements for easier customization (#4421)
* Initial plan

* Add static class names to UI elements for easier customization

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Add unique DOM element IDs for easier customization targeting

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Remove duplicate class names, keep only IDs for UI element targeting

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Revert chat input field ID to original value

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Remove unnecessary nested spans and revert Button ID to original value

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Standardize ID names to follow owncast-{element-description}-{type} pattern

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2025-08-07 19:12:28 -07:00
Gabe Kangas b1ba1bdf0f fix(css): fix sass import path 2025-08-07 18:49:18 -07:00
nya/nekojanaiandGitHub e08b251b7c fix: username wrapping for parting message (#4209) 2025-02-15 17:02:56 -08:00
2e8e61309a Remove use of default props (#4118)
* refactor: replace defaultProps with function parameters in Modal, Statusbar, ChatContainer, and CrossfadeImage components

* New commit for Default properties of React components after syncing fork and rebasing

* fix: fix linter warning

---------

Co-authored-by: swarup <swarupnarkhede999@gmail.com>
2025-01-15 16:12:54 -08:00
a6dc9645e6 Add local CSS lint checks (#4068)
* update package scripts to include prettifying scss files and stylelint-ing; fix related issues found from stylelinter

* revert old prettier autofix

* lint

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2025-01-04 12:59:45 -08:00
mahmed2000andGitHub eca880ac1f Replace picmo with emoji-mart (#4001)
* Add emoji-mart deps

* Change EmojiPicker to use emoji-mart

* Change ChatTextField to work with the emoji-mart data object

* Remove picmo, commit package-lock

* Fix mutant svgs having a size of 0

* Get the custom emojis to show up earlier in the picker

* Set emoji-mart to exact semver. Later versions break custom category sorting.
2024-11-09 13:58:38 -08:00
nekojanaiandGitHub 8e89dfb345 fix: username wrapping (#3975) 2024-10-30 22:13:28 -07:00
Gabe Kangas 4ac3068fcb fix(css): run prittier on css file 2024-10-20 12:29:36 -07:00
Gabe Kangas 78a7a45ff0 fix(sass): resolve sass warning by wrapping in root 2024-10-20 12:20:22 -07:00
s-vamshiandGitHub c528d3921f fix(web): long usernames in chat truncated (#3949) 2024-10-09 15:15:58 -07:00
Owncast 983db3c675 Javascript formatting autofixes 2024-09-20 03:18:25 +00:00
84f0dd07ae Move title up a level to allow mouse hover to show timestamp (#3926)
* Move title up a level to allow mouse hover to show timestamp

* Fix bad commit to resolve 3848

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-19 20:15:49 -07:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Gabe Kangas
f6a1b1b638 chore(deps): update typescript-eslint monorepo to v8 (major) (#3887)
* chore(deps): update typescript-eslint monorepo to v8

* chore(js): fix linter errors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-15 13:51:33 -07:00
5a145eb407 Fixes for aria-live bugs (#3694)
* 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>
2024-04-14 18:06:29 -07:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Gabe Kangas
44eafe69ac fix(deps): update dependency date-fns to v3 (#3619)
* fix(deps): update dependency date-fns to v3

* fix(deps): update usage of date-fns format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-03-06 21:13:13 -08:00
1ddba0118e State-changed events modified to be in aria live region (#3469)
* 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>
2024-03-05 22:02:58 -08:00
Pratyay RoyandGitHub ff3c1a4587 fix: remove autoscroll to readwrite chat embed input field (#3582) 2024-02-18 16:39:24 -08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Gabe Kangas
8069ca782f chore(deps): update dependency @types/react to v18.2.52 (#3479)
* chore(deps): update dependency @types/react to v18.2.52

* fix(chat): missing placeholder prop in interface

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-02-06 20:07:31 -08:00
Gabe Kangas 34a474b30d feat(chat): have unique icons for join and part messages. Closes #3421 2023-11-12 10:42:55 -08:00
Gabe Kangas 9db8a8699a fix: a11y button lables. Closes #3418 2023-11-08 20:08:00 -08:00
kameandGitHub 4f078e1ee4 Migrated Storybook notation from CSF2 to CSF3 (#3412)
* 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
2023-11-06 19:35:05 -08:00
Gabe KangasandGitHub 169c11596c feat(chat): add support for chat part messages. Closes #3201 (#3291) 2023-09-10 10:58:11 -07:00
Gabe Kangas 364afd0e71 fix: add spacing between user badges. Closes #3247 2023-08-17 19:28:21 -07:00
Gabe Kangas 243156b307 chore: address linter warnings 2023-08-02 13:46:00 -07:00
c00b0be3d4 fix emojis overflowing the chat message (#3228)
* 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>
2023-08-02 12:29:25 -07:00
Gabe Kangas a163ab8d96 fix: formatting breaking build 2023-07-29 16:04:32 -07:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Gabe KangasOwncastgabek
7c13a3fd01 chore(deps): update dependency eslint-plugin-react to v7.33.0 (#3205)
* chore(deps): update dependency eslint-plugin-react to v7.33.0

* chore: have linter try to autofix and commit linter warnings

* Linter fixes

* chore: tweak how js formatting is run within actions

* fix: type mismatch

* Prettified Code!

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: gabek <gabek@users.noreply.github.com>
2023-07-29 15:57:45 -07:00
janWilejanandGitHub e15e2dc47c Fix deprecated antd dropdown warnings (#3171)
* Fix deprecated antd dropdown warnings
2023-07-13 20:28:12 +00:00
janWilejanGitHubjanWilejan <>
14baef4e36 remove excess resize event listeners (#3169)
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 <>
2023-07-13 12:36:21 -07:00
janWilejanGitHubjanWilejan <>
f889113526 change overflow behaviour in chat input (#3167)
Firefox only breaks at word boundaries by default, meaning we need a horizontal
scrollbar to handle long words like AAAAAAAAAAAAAAAAAAAAAAAAAAAAA.

Co-authored-by: janWilejan <>
2023-07-11 13:13:04 -07:00
janWilejanGitHubjanWilejan <>
101174f71e replace margins with padding in the chat container (#3165)
Virtuoso can't calculate the size of elements that have margins. This causes
strange behaviour with scrolling in chat.

Co-authored-by: janWilejan <>
2023-07-11 13:07:58 -07:00
John ReganandGitHub 056bd9f152 contenteditable: remove warning about unknown property onContentChange (#3161) 2023-07-10 23:02:07 -07:00
janWilejanGitHubjanWilejan <>
3f4887020d Add resize handle to chat (#3157)
* add resize handle to chat

* Add chat resize functionality

* window resize only causes chat resize on desktop

* fix parseFloat invocation

* desktop is optional attribute of ChatContainer

---------

Co-authored-by: janWilejan <>
2023-07-10 23:00:28 -07:00
John ReganandGitHub a663f8ec34 replace grapheme-splitter with graphemer (updated fork) (#3160) 2023-07-10 16:13:40 -07:00
janWilejanGitHubjanWilejan <>
2d72935564 change chat from a sidebar to a column (#3113)
* 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 <>
2023-07-09 14:07:35 -07:00
John ReganandGitHub c132d82645 simpler chatbox (#3146) 2023-07-09 13:42:03 -07:00
John ReganandGitHub 58bc3ac173 emoji: display native emoji simiarly to custom (#3147) 2023-07-06 12:47:38 -07:00
46ca5223f9 Chat wire protocol (#3125)
* 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>
2023-07-05 17:25:47 -07:00
janWilejanGitHubjanWilejan <>
74ad8d5e18 Fix chat flicker / Usernames collapse in order (#3135)
Co-authored-by: janWilejan <>
2023-07-05 11:51:16 -07:00