151 Commits

Author SHA1 Message Date
Jeremy Kahn
e597a667a1
feat(chat): [closes #13] Active typing indicators (#133)
* feat(typing-indicator): wire up handleMessageChange
* feat(typing-indicator): send typing: true status
* feat(typing-indicator): expire typing state
* feat(typing-indicator): update typing state received from peers
* refactor(shell): add updatePeer utility
* feat(typing-indicator): display peer typing status
* feat(typing-indicator): reset typing status when a message is sent
* feat(typing-indicator): move indicator below message form
* feat(typing-indicator): keep status text to one line
2023-07-27 21:06:35 -05:00
Jeremy Kahn
c4e7e7d13b
fix(file-upload): [closes #122] prevent file picker from getting stuck (#131) 2023-07-25 09:42:53 -05:00
Jeremy Kahn
9b9d294f98
feat(connection-test): [closes #127] Explain tracker connection problems (#130)
* feat(connection-test): [closes #127] explain tracker connection problems
2023-07-16 17:45:16 -05:00
Jeremy Kahn
f67dbb60d3
feat(connection-test): display failed tracker connections (#129) 2023-07-14 17:21:25 -05:00
Jeremy Kahn
291ed0c2b9
feat(connection-test): Display tracker connection status (#128)
* feat(ConnectionTest): track tracker state
* feat(ConnectionTest): show tracker searching state
* chore(deps): use github:jeremyckahn/trystero#feature/get-tracker-connections
* feat(connection-test): hide network indicator in non-room routes
* feat(connection-test): show peer searching status
* feat(connection-test): hide peer searching UI when not in a room
2023-07-13 09:50:54 -05:00
Jeremy Kahn
83e9f7dbdd fix(connection): [#126] set trackerRedundancy to 3 2023-06-30 09:21:27 -05:00
Jeremy Kahn
ec9c9f61ce feat(ConnectionTestResults): [closes #124] explain connection types 2023-06-17 14:53:09 -05:00
Jeremy Kahn
88fad17357 fix: improve connection loss handling 2023-03-28 09:38:57 -05:00
Jeremy Kahn
38509019fd fix: clean up old rtcPeerConnections 2023-03-28 09:13:35 -05:00
Jeremy Kahn
a4b7c8e9ce fix: expire network status checks 2023-03-28 07:46:43 -05:00
Jeremy Kahn
3977a82224
feat: Connection status (#119)
* feat: implement ConnectionTest
* feat: display connection results
* feat: keep network status up to date
2023-03-27 21:51:33 -05:00
Jeremy Kahn
4cf75b15b0
feat: [closes #15] Show connection type (#117)
* feat: [#15] implement getPeerConnectionTypes
* feat: [#15] display connection type icon
* refactor: extract PeerListItem to its own file
* feat: [#15] show connection details via tooltip
* fix: style stable peer name
2023-03-25 14:40:07 -05:00
Jeremy Kahn
87ffd1df56 feat: improve spacing around peer counter 2023-03-22 09:27:52 -05:00
Jeremy Kahn
3481379732 fix: make auto scroll work with images 2023-03-15 10:10:17 -05:00
Jeremy Kahn
7ba62c030b refactor: remove numberOfPeers state 2023-03-15 10:10:17 -05:00
Jeremy Kahn
d6f9b10ce2 feat: don't automatically close sidebars 2023-03-15 10:10:17 -05:00
Jeremy Kahn
446ca466c7 feat: default sidebars to open on wide screens 2023-03-15 10:10:17 -05:00
Jeremy Kahn
dab98f02c2 feat: [#110] give chat transcript a maximum width 2023-03-15 10:10:17 -05:00
Jeremy Kahn
35c3f2fee3
feat: [ closes #91] Render YouTube embeds (#96)
* feat: [#91] embed YouTube videos
2023-03-06 20:40:45 -06:00
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
efde30c386 refactor: use secure-file-transfer@0.0.2 2023-02-19 13:38:17 -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
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
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
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 bbabb1d389985ae1dacea53e9c7bb0e7c87bf950.
2022-11-03 09:39:27 -05:00