* refactor: update vjs onRequst to onRequest
* fix(js): update vjs to use the new onrequest hook for manipulating request uri
---------
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
* 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.
* 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>
* Add bcrypt hashing helpers
* SetAdminPassword now hashes the password before saving it
* BasicAuth now compares the bcrypt hash for the password
* Modify migration2 to avoid a double password hash when upgrading
* Add migration for bcrypt hashed password
* Do not show admin password hash as initial value
* Update api tests to compare the bcrypt hash of the admin password instead
* Remove old admin password api tests
---------
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
* 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>
* asterisk copy fix for #3460
* rename text to keys for consistency + linting fix
* make onCopy spawn an antd message directly, remove redundant copyText function
---------
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>
* WIP
* feat(web): add new offline embed view. First step of #2917
* feat(web): support remote fediverse follow flow from embed
* feat(chore): add back offline video embed browser test
* 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
the absolute positioned mobile action button was attached
to the body causing it to float during scrolling. Now, we wrap
the action buttons inside a relative div so that they are attached
to this div which prevents them from scrolling with page
Fixes#3271
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
* Fix embedded status bar being cut off
This should resolve https://github.com/owncast/owncast/issues/3210.
As recommended in the discussion, flexbox was the way to solve this issue.
The main thing that needed to be addressed though was not applying too many constraints on the OwncastPlayer component just because it was embedded.
By removing the embedded constraints, styling appears to be working as expected.
I'll attach screenshots to the pull request.
* Fix eslint error
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#"
```
* 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.