Commit Graph

238 Commits

Author SHA1 Message Date
Jeremy Kahn
37af59f89e
feat: [closes #94] Show build hash (#95)
* feat: show build hash in Drawer
* feat: add link to GitHub commit for build
2023-03-05 12:22:02 -06:00
Jeremy Kahn
dfe510e642
feat: [closes #76] Custom usernames (#93)
* feat: add Username component
* feat: set custom username state
* feat: update custom username on input blur
* feat: inform peers of username updates
* feat: display username for peers
* feat: show static name in parentheses
* feat: use display name in message notification
* feat: remove username display from Shell Drawer
* feat: persist customUsername
2023-03-04 12:55:37 -06:00
Jeremy Kahn
870a13eac1
feat: [closes #77] Peer audio volume control (#90)
* feat: add AudioVolume component
* feat: show volume slider label value
* feat: update audio volume icon
* feat: mute/unmute when volume icon is clicked
* feat: show peer dividers
2023-02-26 18:26:53 -06:00
Jeremy Kahn
99a9ab7838 fix: use rtcConfig for file transfers 2023-02-22 09:48:51 -06:00
Jeremy Kahn
efde30c386 refactor: use secure-file-transfer@0.0.2 2023-02-19 13:38:17 -06:00
Jeremy Kahn
ebb8efb3f6 refactor: use secure-file-transfer@0.0.1 2023-02-19 12:33:45 -06:00
Jeremy Kahn
67ee15c40e refactor: type readable-stream-node-to-web 2023-02-18 13:45:52 -06:00
Jeremy Kahn
a9f7919460 refactor: type abstract-chunk-store and idb-chunk-store 2023-02-18 13:02:58 -06:00
Jeremy Kahn
8d27c2239a refactor: type all of wormhole-crypto 2023-02-18 11:56:58 -06:00
Jeremy Kahn
7d73a5ca7f refactor: declare used wormhole-crypto types 2023-02-17 09:43:55 -06:00
Jeremy Kahn
9477fb2306 refactor: use streamsaver types 2023-02-17 09:36:01 -06:00
Jeremy Kahn
b47c71aa8d refactor: clean up trystero types 2023-02-17 09:09:39 -06:00
Jeremy Kahn
674a3cea45 docs: explain stream pooling strategy 2023-02-16 09:41:06 -06:00
Jeremy Kahn
b0d4479e63 refactor: remove useless object spread 2023-02-16 09:40:16 -06:00
Jeremy Kahn
44ba2181be fix: [#86 post-fix] don't create redundant data before transferring files 2023-02-15 21:48:57 -06:00
Jeremy Kahn
50aecb4af9
fix: [#86 post-fix] Reduce file transfer memory usage (#88)
* fix: [#86] don't bloat memory when seeding files
2023-02-15 09:45:45 -06:00
Jeremy Kahn
62a453807a fix: show correct user name for selected video stream 2023-02-11 17:37:41 -06:00
Jeremy Kahn
d7287b5f6d
feat: [closes #86] Encrypted file transfers (#87)
* feat: [#86] encrypt torrent data before upload
* feat: [#86] decrypt torrent data after download
* feat: [#86] use room ID as encryption key
* feat: [#86] show alerts for encryption activity
* feat: [#86] show progress indicator while encrypting files
2023-02-11 17:29:57 -06:00
Nasal Daemon
8493ddade5
Give video display as much space as possible (#84)
* Move room tools to top of page to use full width
Allow messages to be hidden while video is displaying
Allow video display to utilise all available width
Track unread messages while they are hidden
* Better portrait behaviour
* Show room controls by default
* Show room controls at same time as app bar
Improve video height calc.

Co-authored-by: Jeremy Kahn <jeremyckahn@gmail.com>
2023-01-23 21:50:14 -06:00
Nasal Daemon
fcec242194
[closes #75] Easier sharing of private rooms (#81)
* Add URL secret reading logic
* Add private url share dialog
* Salt password hash with roomId
* Don't allow incorrect password to be entered

Co-authored-by: Jeremy Kahn <jeremyckahn@gmail.com>
2023-01-08 14:37:30 -06:00
Jeremy Kahn
5d3d019cd6
feat: [closes #33] Render inline media (#73)
* refactor: pass inline media upload data to useRoom
* feat: render inline media
* fix: don't rescind inline media file offers
* refactor: send file offer metadata object
* fix: enable re-seeding of inline media files
* feat: show loading indicator for inline media
* feat: rescind any evicted inline media
* feat: display media rendering failure message
* feat: prevent user from uploading file if message is sending
2022-11-28 21:18:41 -06:00
Jeremy Kahn
d10c047fec refactor: load webtorrent source 2022-11-28 20:45:45 -06:00
Jeremy Kahn
5e24d5f1d3 fix: display correct number of current peers 2022-11-27 19:17:12 -06:00
Jeremy Kahn
fdf80b8292 feat: improve drawer layout 2022-11-26 09:49:02 -06:00
Jeremy Kahn
8ec721bc2f feat: add label for room tools 2022-11-26 09:43:28 -06:00
Jeremy Kahn
19e8a3ca04 feat: close peer list when leaving room 2022-11-26 09:29:32 -06:00
Jeremy Kahn
2910c70a8a refactor: replace funAnimalName with getPeerName in useRoom 2022-11-26 09:25:37 -06:00
Jeremy Kahn
d4d4f05e44 refactor: destruct shellContext in useRoom 2022-11-26 09:23:27 -06:00
Jeremy Kahn
37250fddf5 fix: prevent peer list from obscuring room 2022-11-25 10:40:13 -06:00
Jeremy Kahn
f006e76e80
feat: [closes #21] File sharing (#72)
* feat: [#21] stand up file sharing controls UI
* feat: [#21] implement basic file transfer
* feat: [#21] save transferred file
* feat: [#21] transfer file via WebTorrent
* fix: use external streamsaver assets
* feat: [#21] initiate download by receiver click
* fix: enable re-downloading of shared files
* feat: [#21] implement sharing of multiple files
* chore: enable offline development
* feat: cache torrents in IndexedDB
* feat: show alert when download is aborted
* feat: [#21] clean up torrent data when principal offerer rescinds it
* feat: clean up cached torrents on page unload
* feat: show file transfer progress
* fix: download files sequentially
* feat: clean up file transfers when leaving the room
* feat: clean up broken downloads upon leaving the page
* fix: allow download animation to complete
* feat: show tooltip for download button
* feat: make file transfers work in browser private modes
* feat: disable file share controls while creating offer
2022-11-24 00:16:34 -06:00
Jeremy Kahn
4e29bfbd24 feat: group videos closer together 2022-11-16 09:14:10 -06:00
Jeremy Kahn
373ea22d2c feat: improve video layout 2022-11-15 22:02:18 -06:00
Jeremy Kahn
f5c0eb3f16 feat: improve video layout 2022-11-15 09:52:00 -06:00
Jeremy Kahn
97d5b64fc1 fix: prevent video focusing when there is only one video 2022-11-15 09:26:48 -06:00
Jeremy Kahn
f20f32f6a6
feat: Video focusing (#71)
* feat: focus video on click
2022-11-14 22:05:25 -06:00
Jeremy Kahn
69da8fed2f fix: [#67] increase streamQueueAddDelay to 1000 2022-11-14 07:38:30 -06:00
Jeremy Kahn
c1fad606f6 fix: [#67] enable joining peers to receive all video streams 2022-11-14 07:27:41 -06:00
Jeremy Kahn
75a804abbd
feat: [closes #67] Screen sharing (#68)
* feat: [#67] stand up useRoomScreenShare hook
* feat: [#67] stand up RoomScreenShareControls
* feat: [#67] display screen share streams
* fix: [#67] don't flip screen share preview
* feat: don't display screen share controls in unsupported environments
* fix: [#67] always remove media streams for exiting peers
2022-11-13 17:11:09 -06:00
Jeremy Kahn
f6314501a2 feat: import peer video layout 2022-11-07 21:19:11 -06:00
Jeremy Kahn
b27a54eac4 feat: improve peer video display 2022-11-07 09:47:32 -06:00
Jeremy Kahn
51a17a72a3 fix: always show link button 2022-11-06 20:52:56 -06:00
Jeremy Kahn
19d0faaccc refactor: move video stream data into new room context 2022-11-06 20:49:48 -06:00
Jeremy Kahn
828e3c12b9
feat: [closes #20] Video support (#64)
* refactor: nest ChatTranscript
* feat: set up video controls
* feat: show self video
* feat: show peer video
* feat: improve audio/video controls display
* feat: flip self video
* feat: improve device selection labels
2022-11-06 13:36:15 -06:00
krayste
d4e565815c
feat: [closes #12] add qr code support (#63)
* Add initial QRCode implementation
2022-11-05 20:41:24 -05:00
krayste
237fc0e6df
Add end adornment icon to refresh the room uuid() (#62)
* Add end adornment icon to refresh room uuid()
* Make mobile compatible
2022-11-05 10:40:42 -05:00
Jeremy Kahn
8947bace94
refactor: Room audio (#61)
* Revert "Revert "refactor: move room audio controls to their own component""

This reverts commit 219e0670ca2c0c5e7bb1c25d4928cdc787934c09.

* fix: prevent duplicate hook handlers
* refactor: PeerRoom cleanup
2022-11-03 21:36:30 -05:00
Jeremy Kahn
a87b0d3367 Revert "refactor: move room audio controls to their own component"
This reverts commit bbabb1d389.
2022-11-03 09:39:27 -05:00
Jeremy Kahn
bbabb1d389 refactor: move room audio controls to their own component 2022-11-03 09:33:17 -05:00
Jeremy Kahn
49c513b8e1 refactor: decouple peer room hooks and clean up audio 2022-11-02 21:48:40 -05:00
Jeremy Kahn
0a05d197cb fix: clean up unused audio objects 2022-11-01 09:54:22 -05:00
Jeremy Kahn
9c18f40d61 refactor: move audio logic to new hook 2022-11-01 09:10:53 -05:00
Jeremy Kahn
ba21936c96 feat: [#19] display which peers are speaking to the room 2022-10-31 21:40:44 -05:00
Jeremy Kahn
931ddf267f feat: remember selected audio device when muting 2022-10-31 09:16:46 -05:00
Jeremy Kahn
f219218d02
feat: (closes #19) Audio calls (#60)
* feat: [#19] set up voice call UI
* feat: [#19] get audio calls
* feat: [#19] implement audio device selection
2022-10-30 16:07:32 -05:00
Jeremy Kahn
02a2e53b64 feat: [closes #53] display message timestamps 2022-10-29 14:20:56 -05:00
Jeremy Kahn
33f85fc8aa fix: make full room transcripts autoscroll to the bottom when necessary 2022-10-29 13:51:17 -05:00
Jeremy Kahn
a5a61b0cb0 feat: set messageTranscriptSizeLimit to 150 2022-10-29 13:25:31 -05:00
Jeremy Kahn
9f0d20cd22 feat: redirect invalid routes to root 2022-10-29 13:09:27 -05:00
Jeremy Kahn
95d6ed6f11 fix: [closes #59] prevent users from using empty room names 2022-10-29 12:54:40 -05:00
Jeremy Kahn
73e09041cc
feat: (closes #3) Private rooms (#51)
* feat: present password submit UI as a form
* fix: don't connect to room without password
* feat: password-protect room connections
* feat: disable transcript backfilling for private rooms
2022-10-27 22:21:35 -05:00
Jeremy Kahn
b02ef3e988 fix: use root route for home link 2022-10-27 09:43:17 -05:00
Jeremy Kahn
9480d8cc17 feat: add link to community room list 2022-10-26 09:44:56 -05:00
Jeremy Kahn
ba744407ba feat: close peer list when counter is clicked 2022-10-25 21:49:27 -05:00
Jeremy Kahn
f0af2eb480 feat: wrap peer number indicator in an IconButton 2022-10-25 21:43:39 -05:00
Jeremy Kahn
10b061e36a
feat: [closes #22] implement message backfilling (#45)
* feat: [#22] implement message backfilling
* feat: scroll to latest backfilled message
* feat: document transcript backfilling
2022-10-25 21:00:28 -05:00
Jeremy Kahn
bd6f1d5090 feat: [closes #46] limit chat transcripts to 10,000 messages 2022-10-25 20:17:58 -05:00
Jeremy Kahn
6740d8da3d fix: prevent overlap of right side of chat 2022-10-25 09:18:41 -05:00
Jeremy Kahn
ee7d528f01
feat: [closes #40] Disclaimer (#42)
* feat: [#40] stand up disclaimer page
* chore: use mui-markdown for disclaimer copy
* feat: [#40] add more disclaimer copy
* feat: style lists in messages
* refactor: author About page with Markdown
* feat: improve About page formatting
2022-10-16 21:49:04 -05:00
Jeremy Kahn
58326ecbb8
refactor: Room logic (#34)
* refactor: move room logic to usePeerRoom hook
* refactor: make peer room hooks private
2022-10-04 22:00:16 -05:00
Jeremy Kahn
ebb80c3e6c chore: use trystero@0.11.4 2022-10-04 09:14:34 -05:00
Jeremy Kahn
d14ae4c2b3 fix: disable ripple effect in PeerList 2022-10-04 09:12:03 -05:00
Flaykz
26618c0309
feat: [closes #14] Display peer list (#28)
* feat: [#14] Display peer list

Co-authored-by: Jeremy Kahn <jeremyckahn@gmail.com>
2022-10-04 09:08:38 -05:00
Jeremy Kahn
c38a203f07 feat: [closes #32] group messages under peer names 2022-10-03 21:29:28 -05:00
Jeremy Kahn
44c328fd1f feat: add error boundary 2022-10-01 13:38:56 -05:00
Jeremy Kahn
69a15443ce fix: prevent unstyled pre content from breaking out of message box 2022-10-01 11:46:46 -05:00
Jeremy Kahn
630a7aa398 refactor: [#7] move audio logic to new Audio service 2022-09-30 09:13:07 -05:00
Jeremy Kahn
b4decae69c
feat: [closes #6] Show notifications for messages recieved in the background (#31)
* feat: [#6] show notification when message is received
* feat: [#6] add setting for enabling/disabling notifications
* refactor: [#6] decouple PeerNameDisplay from funAnimalName
* feat: [#6] disable notifications setting when notifications are unavailable
2022-09-29 21:56:28 -05:00
Flaykz
492cfa58ce
feat: [#7] Play a sound on new message (#25)
* feat: [#7] Play a sound on new message

* fix: [#7] Since this mock is a no-op, I think we can omit the argument to mockImplementation

Co-authored-by: Jeremy Kahn <jeremyckahn@gmail.com>

* fix: [#7] lazy initialization of this state

Co-authored-by: Jeremy Kahn <jeremyckahn@gmail.com>

* fix: [#7] More accurate error message

Co-authored-by: Jeremy Kahn <jeremyckahn@gmail.com>

* fix: [#7] Replace then with await

* [closes #24]  Settings UI (#26)

* feat: [#24] wire up settings page
* feat: [#24] stand up settings UI
* feat: [#24] implement storage deletion
* feat: [#24] confirm deletion of settings data

* feat: [#7] Add play sound switch in settings

* feat: [#7] avoid typescript warning

Co-authored-by: Jeremy Kahn <jeremyckahn@gmail.com>

* feat: [#7] more straighforward wording

Co-authored-by: Jeremy Kahn <jeremyckahn@gmail.com>

* feat: [#7] remove useless usestate

* feat: [#7] avoid new settings to be undefined in persisted storage

* feat: [#7] creating a chat section in settings

Co-authored-by: Jeremy Kahn <jeremyckahn@gmail.com>
2022-09-26 08:10:31 -05:00
Jeremy Kahn
e259196942
[closes #24] Settings UI (#26)
* feat: [#24] wire up settings page
* feat: [#24] stand up settings UI
* feat: [#24] implement storage deletion
* feat: [#24] confirm deletion of settings data
2022-09-23 17:40:34 -05:00
Jeremy Kahn
20d8337082 refactor: move routes to an enum 2022-09-20 14:22:39 -05:00
Jeremy Kahn
b7c8ee6441 chore: upgrade to trystero 0.11.3 2022-09-19 11:51:49 -05:00
Jeremy Kahn
2fabd4d974 feat: [closes #17] add About page 2022-09-17 12:39:16 -05:00
Jeremy Kahn
62e512582d refactor: move route content rendering to its own component file 2022-09-17 11:29:57 -05:00
Jeremy Kahn
cba8bc47df feat: improve home screen messaging 2022-09-17 11:20:56 -05:00
Jeremy Kahn
7224145e2b refactor: move notification area to its own component file 2022-09-17 11:08:05 -05:00
Jeremy Kahn
28e09213d8 refactor: move app bar to its own component file 2022-09-16 09:46:11 -05:00
Jeremy Kahn
0b15957d93 refactor: move upgrade dialog to its own component file 2022-09-16 09:36:24 -05:00
Jeremy Kahn
9b5551a4bd refactor: move drawer to its own component file 2022-09-15 21:16:41 -05:00
Jeremy Kahn
f2aeec5acb feat: [closes #18] limit message character size to 10,000 2022-09-15 20:15:43 -05:00
ighmaz
e891339907
feat: [for #18] limited message to 1000 (#23) 2022-09-15 19:58:12 -05:00
Jeremy Kahn
e2bac732cf docs: add self-hosting info 2022-09-11 20:52:47 -05:00
Jeremy Kahn
1ea67e2c3a
feat: [closes #1] display logo (#10)
* feat: display logo
* chore: credit ramyashreeshetty for logo
2022-09-11 17:27:16 -05:00
Jeremy Kahn
702c1e8135 chore: remove update test message 2022-09-11 15:46:14 -05:00
Jeremy Kahn
db5b8b7905 test: log update test message 2022-09-11 13:49:51 -05:00
Jeremy Kahn
de38dfa138 feat: [#4] wire up update UI 2022-09-11 13:45:17 -05:00
Jeremy Kahn
8cd2ce3f45 refactor: move trackerUrls to its own file 2022-09-10 18:22:36 -05:00
Jeremy Kahn
d277820961 refactor: move rtcConfig to its own file 2022-09-10 17:52:53 -05:00
Jeremy Kahn
f0a4404910 feat: automatically focus message input 2022-09-08 21:47:02 -05:00
Jeremy Kahn
cebb8dc93a fix: prevent large transcripts from affecting input performance 2022-09-08 21:35:50 -05:00
Jeremy Kahn
5b69f48229 feat: automatically transform URLs into links 2022-09-08 09:37:38 -05:00