Commit Graph
862 Commits
Author SHA1 Message Date
Patrick BollingerandGitHub e59167deaa Stop Firefox from adding mysterious hash (#3348)
This resolves https://github.com/owncast/owncast/issues/3240

From the comments:
This was trickier than expected, but the root of the problem is Firefox will set `#` in the URL bar when `window.location.hash` is set to _any_ string, even a blank string. The morale of the story is, don't mutate base data if you just want to copy values. 😅

Sample of Firefox JavaScript console session that demonstrates the issue:
```javascript
>> window.location.href
"https://github.com/owncast/owncast/issues/3240"

>> const setBlankHash = () => { window.location.hash = ''; };
undefined

>> window.location.hash
""

>> window.location.href
"https://github.com/owncast/owncast/issues/3240"

>> setBlankHash()
undefined

>> // My browser just jumped to the top of the page
undefined

>> window.location.hash
""

>> window.location.href
"https://github.com/owncast/owncast/issues/3240#"
```
2023-10-08 18:58:43 -07:00
Vishal SharmaandGitHub 1917b15b0a Update ClientTable.tsx (#3342)
* Update ClientTable.tsx

solves: #3339

## Changes

changed   owncast/web/components/admin/ClientTable.tsx line 44 `value={selectedKeys[0]})` to `value={selectedKeys[0].toString()} // Convert selectedKeys[0] to string
` as the value attribute expects a value of type string | number | readonly string[]` but previously it was assigned bigint.

* Update ClientTable.tsx

solves: #3339

## Changes

changed   owncast/web/components/admin/ClientTable.tsx line 44 `value={selectedKeys[0]})` to `value={selectedKeys[0].toString()} // Convert selectedKeys[0] to string
` as the value attribute expects a value of type `string | number | readonly string[]` but previously it was assigned bigint.
2023-10-07 13:14:07 -07: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 5ac0d5bbca feat(admin): add explicit directory info agreement modal. Closes #3258 2023-08-16 17:08:19 -07:00
Gabe Kangas 1a7b6b99d5 feat(storage): support a object storage custom path prefix 2023-08-11 22:18:45 -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
Gabe KangasandGitHub 6e3f5d3e9f fix: fix positioning of mobile buttons menu. Closes #3216 (#3217) 2023-07-28 02:20:04 +00:00
Gabe Kangas 16db7825c9 fix: external actions were assuming all actions are urls. Fixes #3213 2023-07-26 11:17:47 -07:00
f112f9813d NotifyReminderPopup uses a custom Popover (#3194)
* NotifyReminderPopup uses a custom Popover

* fix Popover resizing in storybook

* Prettified Code!

---------

Co-authored-by: janWilejan <>
Co-authored-by: janWilejan <janWilejan@users.noreply.github.com>
2023-07-21 15:58:14 -07:00
Gabe KangasandGitHub 777da508ed fix(chat): fix chat not using the correct messages selector. (#3180)
* fix(chat): fix chat not using the correct messages selector. Closes #3166

* fix(chat): initial state was incorrect when hiding/showing messages
2023-07-17 20:48:59 +00:00
Gabe Kangas d43c2be44a fix(admin): display year for user tables if not current year. Closes #3175 2023-07-16 16:46:35 -07:00
Gabe Kangas 4790880c19 fix(admin): save appearanceVariables to admin global config state. Fixes #3170 2023-07-16 16:34:37 -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 3f65099910 Name change: better unicode handling (#3164)
* Name change: better unicode handling

Client-side:

* Changes the NameChangeModal to show text "Over limit" when a proposed display
name is too long.

* Allows names to go over limit to prevent splitting graphemes on input.

Server-side:

* Changes the MakeSafeStringOfLength to count number of unicode code points
instead of string bytes.

* name modal: check that newName is defined before iterating
2023-07-11 10:44:09 -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
Dev GuptaandGitHub d107a3386c Update ActionButtonRow.module.scss (#3156) 2023-07-09 18:08:02 -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
janWilejanGitHubjanWilejan <>
d09031faeb Increase width of volume slider to 100px (#3155)
Co-authored-by: janWilejan <>
2023-07-09 12:50:04 -07:00
John ReganandGitHub 58bc3ac173 emoji: display native emoji simiarly to custom (#3147) 2023-07-06 12:47:38 -07:00
janWilejanGitHubjanWilejan <>
185123dab2 fail silently when no codces are found (#3142)
Co-authored-by: janWilejan <>
2023-07-05 21:41:50 -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
Gabe Kangas dc2c46e2a4 fix(ui): fix for exception when chat is disabled. Closes #3138 2023-07-05 14:02:39 -07:00
janWilejanGitHubjanWilejan <>
74ad8d5e18 Fix chat flicker / Usernames collapse in order (#3135)
Co-authored-by: janWilejan <>
2023-07-05 11:51:16 -07:00
John ReganandGitHub 5c07e3ced6 highlighting: make case-insensitive, support unicode (#3137)
* highlighting: make case-insensitive, support unicode

* highlighting: also highlight simplified/normalized form

* highlighting: use MDN-recommended escape pattern
2023-07-05 11:23:39 -07:00
Gabe Kangas 65d52072d4 fix(chat): reposition chat loading spinner 2023-07-04 16:11:54 -07:00
Gabe Kangas 00a5fb8dc8 fix: pass username and instance url to external actions. Fixes #3130 2023-07-04 12:14:21 -07:00
Gabe Kangas 5876c7cfbb fix(ui): simplify modal loading ui state 2023-07-04 12:11:27 -07:00
bf1ccf21d2 chat: simplify input handling (#3124)
* 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>
2023-06-30 12:22:01 -07:00
Gabe Kangas bcd08633b4 fix(chat): simplify emoji + char count handling. Closes #3120 2023-06-29 20:35:53 -07:00
Gabe Kangas f1bde962cc feat(admin): auto-expand news item if there is only one 2023-06-29 19:37:52 -07:00
Dev GuptaandGitHub d973d1ac38 Update Sidebar.tsx (#3119) 2023-06-28 12:16:10 -07:00
Gabe Kangas b1a8f712c0 fix(embed): leave room for status bar in video embed. Closes #3104 2023-06-28 10:13:24 -07:00
janWilejanGitHubjanWilejan <>
ce724fa073 username of repeat chat messages is display:none (#3101)
users who want to show repeat usernames can inject the following CSS:
[class^="ChatUserMessage_repeatUser"]{display:flex !important;}

Co-authored-by: janWilejan <>
2023-06-28 09:58:07 -07:00
Gabe Kangas 6805a7c1db feat(ui): more improvements to initial loading state 2023-06-28 07:53:06 -07:00
Gabe Kangas d60289c8bc feat(ui): improve loading state 2023-06-27 22:52:23 -07:00
Gabe Kangas 0fd18cf889 fix: split out styles into two style tags. Should help #2989 2023-06-27 17:44:09 -07:00
Gabe Kangas e7f464a10f fix(ui): fix not being able to disable browser notifications. Closes #3115 2023-06-27 16:40:35 -07:00
Gabe Kangas 1ea9a548e1 fix(ui): fallback to an empty array. Closes #3116 2023-06-27 16:19:16 -07:00
Gabe Kangas 1f755cb0ba fix(chat): do not allow chat scrolling to impact page scrolling. Closes #3109 2023-06-27 16:11:07 -07:00
Gabe Kangas 1d6877d3ef fix(admin): fix error displaying and do not allow deleting of the last stream key. Closes #3114 2023-06-27 16:08:07 -07:00