72 Commits

Author SHA1 Message Date
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
169c11596c feat(chat): add support for chat part messages. Closes #3201 (#3291) 2023-09-10 10:58:11 -07:00
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
6805a7c1db feat(ui): more improvements to initial loading state 2023-06-28 07:53:06 -07:00
d60289c8bc feat(ui): improve loading state 2023-06-27 22:52:23 -07:00
c563742856 Chat popup (#3098)
* add pop out chat button

* add button to close chat popup

* chat is hidden on main interface when a popup chat is open

* NameChangeEvent renames clients with the given id

if you have two or more owncast windows (or pop-out chats) open, changing your
name in 1 client is reflected in all clients.

* replace isChatVisible booleans with chatState enum

* update stories to use ChatState

* fix build tests

---------

Co-authored-by: janWilejan <>
2023-06-26 09:00:27 -07:00
71703f2245 fix(chat): fix bot status not showing. Closes #3046 2023-05-31 13:54:03 -07:00
e50b23d081 Cleanup unused Javascript (#3027)
* chore(js): be stricter about dead code warnings

* chore(js): remove dead code and unused exports

* rebase

* chore: remove unused files

* chore(deps): remove unused prop-types dep

* chore(js): remove unused function

* chore(deps): remove + check unused deps

* chore(js): remove unused exports. Closes #3036
2023-05-20 21:15:25 -07:00
597281bbb2 Guard against duplicate websocket connections. Closes #2773 2023-03-31 21:01:16 -07:00
0f58f8c0fe Banned and chat disconnected states will hide chat. Closes #2764 2023-03-13 15:25:05 -07:00
c4f057eded Make testing for moderator state centralized in User class 2023-03-03 21:55:02 -08:00
1536e4a04d Show moderator message mid-chat session. Closes #2762 2023-03-03 19:49:58 -08:00
b38df2fbe3 Create stories for layout testing (#2722)
* Inject services with useContext

* Extract service for video settings

* Create mock factories for services

* Create test data for chat history

* Add story to visualize different layouts

* Fix renaming mistake

* Add landscape and portrait viewports

* Add landscape stories

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2023-02-26 16:54:28 -08:00
313a81359a Add Fediverse event chat views. Closes #2679 2023-02-05 19:58:38 -08:00
a84af0870a Speed up initial loading state 2023-01-31 23:29:03 -08:00
b0f88519d0 Strip fragments from URL when connecting to websocket 2023-01-21 23:19:21 -08:00
5b371b4f73 Improve connectivity error message 2023-01-17 19:21:24 -08:00
e48e274c79 Only show moderator notification once. Closes #2578 2023-01-13 20:53:10 -08:00
d8a5380b7f Fix some React lifecycle and rendering errors that exist in build 2023-01-10 16:39:20 -08:00
a971a79296 Fix name change clearing chat history. Closes #2532 2022-12-29 20:11:20 -08:00
4838562af8 Fix online app state not being set during goodbye state 2022-11-20 13:27:43 -08:00
32d0850854 Fix another first-launch bug 2022-11-13 19:29:10 -08:00
f5355f244c Change status handling 2022-11-13 16:03:37 -08:00
c5f02a091b Handle all server status changes 2022-11-13 14:50:20 -08:00
f348203016 Fix delay in app state being set 2022-11-13 10:47:28 -08:00
595865c11d Fix infinite load on first launch. Closes #2302 2022-11-04 18:35:50 -07:00
50f23a0807 Changes to troubleshoot #2291 2022-11-02 00:02:32 -07:00
952b28f8bf Explicitly set state for config+status when hydrated 2022-10-24 21:26:03 -07:00
e75b20d6ca Support customSocketOverride value for websocket. Closes #2225 2022-10-18 20:43:23 -07:00
91c7bed0e8 Add action message type to chat. Closes #2226 2022-10-18 19:47:38 -07:00
37cdbb8dbd Add backgrounded stream+messages title notifier. Closes #2208 2022-10-18 19:21:08 -07:00
3e89937d2b Handle websocket errors and reconnection. Closes #1869 2022-10-18 16:39:49 -07:00
80a012a3c7 Add current user object that holds user session values instead of standalone getters. Closes #2050 2022-10-10 16:40:13 -07:00
9c1fac7468 Do not show raw error in the fatal error modal 2022-10-08 23:15:38 -07:00
8ee9be5d88 Support disabled chat. Closes #1979 2022-09-10 20:03:58 -07:00
8d02f4068d Polish up the initial loading experience 2022-09-10 18:08:56 -07:00
42ff0cdb01 Add server-side hydration of initial config+status. Closes #1964 2022-09-10 15:37:07 -07:00
d1f3fffe2f reafctor: normalize component formatting (#2082)
* refactor: move/rename BanUserButton file

* refactor: move/rename Chart file

* refactor: update generic component filenames to PascalCase

* refactor: update config component filenames to PascalCase

* refactor: update AdminLayout component filename to PascalCase

* refactor: update/move VideoJS component

* chore(eslint): disable bad react/require-default-props rule

* refactor: normalize ActionButton component

* refactor: normalize ActionButtonRow component

* refactor: normalize FollowButton component

* refactor: normalize NotifyButton component

* refactor: normalize ChatActionMessage component

* refactor: normalize ChatContainer component

* refactor: normalize ChatJoinMessage component

* refactor: normalize ChatModerationActionMenu component

* refactor: normalize ChatModerationDetailsModal component

* refactor: normalize ChatModeratorNotification component

* refactor: normalize ChatSocialMessage component

* refactor: normalize ChatSystemMessage component

* refactor: normalize ChatTextField component

* refactor: normalize ChatUserBadge component

* refactor: normalize ChatUserMessage component

* refactor: normalize ContentHeader component

* refactor: normalize OwncastLogo component

* refactor: normalize UserDropdown component

* chore(eslint): modify react/function-component-definition rule

* refactor: normalize CodecSelector component

* refactor: update a bunch of functional components using eslint

* refactor: update a bunch of functional components using eslint, pt2

* refactor: update a bunch of functional components using eslint, pt3

* refactor: replace all component->component default imports with named imports

* refactor: replace all component-stories->component default imports with named imports

* refactor: remove default exports from most components

* chore(eslint): add eslint config files for the components and pages dirs

* fix: use-before-define error in ChatContainer

* Fix ChatContainer import

* Only process .tsx files in Next builds

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2022-09-07 00:00:28 -07:00
ac7e095fdf Handle hide/show chat messages via moderation. Closes #1986 2022-09-04 17:58:06 -07:00
f3d611e762 Fix content header not rendering properly on mobile 2022-08-22 21:50:17 -07:00
c2bd9436ba Show moderation menu for moderators. Closes #1864 2022-08-22 19:25:16 -07:00
c4479a0ffc Add first pass at IndieAuth modal. For #1863 2022-08-20 16:16:24 -07:00
f8429beef4 Add+style system style chat message. Closes #1998 2022-08-10 20:22:00 -07:00
68414445c2 Add support for changing user color in name modal. Closes #1805 2022-08-09 19:56:45 -07:00
2c8621c873 Add chat join messages 2022-07-14 21:05:34 -07:00
9a2a43d916 Add moderator status chat message. Closes #1999 2022-07-14 20:36:47 -07:00
d12712a107 Changed chat behaviour
added recoil value isMobile to determine which chat to display and
style. #1978

changed the player to actually span across the viewport without the
black borders around it.
2022-07-03 12:36:30 +02:00
ccb97197c5 Fix chat array not being properly appended to 2022-06-29 11:50:56 -07:00
bb1c934c4b Fix goodbye state not going back online. Closes #1977 2022-06-25 21:26:41 -07:00
6de93f9651 Move the favicons 2022-06-24 21:53:16 -07:00