Commit Graph

262 Commits

Author SHA1 Message Date
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
Jeremy Kahn
9a159e5787 feat: improve home screen display 2022-09-05 18:59:59 -05:00
Jeremy Kahn
040e199231 feat: improve home screen app bar layout 2022-09-05 17:56:15 -05:00
Jeremy Kahn
04549a8507 feat: close menu when navigating home 2022-09-05 17:54:23 -05:00
Jeremy Kahn
07cd343b10 feat: add button to copy current URL 2022-09-05 17:52:18 -05:00
Jeremy Kahn
7fb46bfe27 feat: persist color theme setting 2022-09-05 17:35:40 -05:00
Jeremy Kahn
82673d54fd refactor: move ShellContext to contexts directory 2022-09-05 12:17:10 -05:00
Jeremy Kahn
38378f0dfb feat: simplify and improve UI layout 2022-09-05 12:12:54 -05:00
Jeremy Kahn
56230b8361 feat: improve layout for more dimensions 2022-09-04 12:09:30 -05:00
Jeremy Kahn
a2ac9fa102 feat: improve message colors 2022-09-04 11:04:54 -05:00
Jeremy Kahn
c2cd21672a feat: show user name to self 2022-09-04 09:59:28 -05:00
Jeremy Kahn
59a93c6fd0 feat: display user-friendly peer names 2022-09-04 09:39:18 -05:00
Jeremy Kahn
8b22aa8df9 feat: implement theme toggling 2022-09-02 09:49:00 -05:00
Jeremy Kahn
96740b352b fix: eliminate gap between transcript and header 2022-09-02 09:26:32 -05:00
Jeremy Kahn
899286369e feat: hide and show peer counter 2022-09-01 21:28:45 -05:00
Jeremy Kahn
bfa7158fb1 test: validate drawer toggling 2022-09-01 21:12:52 -05:00
Jeremy Kahn
fb2a5144a2 refactor: simplify index.tsx 2022-08-31 22:05:24 -05:00
Jeremy Kahn
0468977072 feat: add app drawer with home button 2022-08-31 21:44:00 -05:00
Jeremy Kahn
bf4b6b18d6 refactor: move shell into its own component 2022-08-31 19:40:40 -05:00
Jeremy Kahn
839628dc75 feat: improve shell and room display 2022-08-31 19:26:38 -05:00
Jeremy Kahn
c9dadbb89e feat: set page title 2022-08-31 19:18:35 -05:00
Jeremy Kahn
2a09eddb7d fix: remove double "has" from alert messages 2022-08-31 10:09:49 -05:00
Jeremy Kahn
6bc8bf8b88 feat: show alerts when someone joins or leaves the room 2022-08-31 09:55:57 -05:00
Jeremy Kahn
70ac4f34da feat: use relay servers when necessary 2022-08-30 09:38:14 -05:00
Jeremy Kahn
cfc9881b9d feat: prevent page overflows 2022-08-29 22:20:04 -05:00
Jeremy Kahn
caaa59d014 feat: show number of peers in the room 2022-08-29 22:05:56 -05:00
Jeremy Kahn
2e30f53b39 chore: use local tracker for development 2022-08-29 19:21:14 -05:00
Jeremy Kahn
39d8129957 fix: don't crash when the room changes 2022-08-28 21:57:18 -05:00
Jeremy Kahn
71ecc37d89 feat: render top bar 2022-08-28 21:25:49 -05:00
Jeremy Kahn
73daf3ddb3 feat: use full dark theme 2022-08-28 18:32:34 -05:00
Jeremy Kahn
ac4b7d6d70 feat: support code syntax highlighting 2022-08-28 18:19:14 -05:00
Jeremy Kahn
d939e16ee6 feat: scroll to bottom of transcript when number of messages change 2022-08-28 16:55:53 -05:00
Jeremy Kahn
a6a5c90a73 feat: improve message display 2022-08-28 11:45:26 -05:00
Jeremy Kahn
707e090f8b refactor: use Box instead of div 2022-08-27 21:48:22 -05:00
Jeremy Kahn
dd82d9e1eb feat: render message author 2022-08-27 21:38:08 -05:00
Jeremy Kahn
d90469e06f feat: render messages as markdown 2022-08-27 21:25:38 -05:00
Jeremy Kahn
cd3f1b0fd7 feat: allow multiline messages with shift+enter 2022-08-27 19:40:51 -05:00
Jeremy Kahn
7e107e8290 feat: improve sending UI layout 2022-08-27 19:06:54 -05:00
Jeremy Kahn
fd9998fc2c feat: improve layout of room 2022-08-26 09:39:01 -05:00
Jeremy Kahn
4584e0f42f refactor: render Message component 2022-08-23 21:46:07 -05:00
Jeremy Kahn
254ebf2580 refactor: get roomId from props 2022-08-23 21:15:58 -05:00
Jeremy Kahn
0d28df82c2 feat: show animation when message is successfully sent 2022-08-22 21:57:45 -05:00
Jeremy Kahn
3be1f2e88a feat: improve message styling 2022-08-21 10:44:01 -05:00
Jeremy Kahn
6fb021e6c4 feat: style messages 2022-08-21 10:32:54 -05:00
Jeremy Kahn
499a0ef193 feat: show full message transcript 2022-08-20 22:23:43 -05:00
Jeremy Kahn
d4bc49f096 refactor: allow for full trystero configuration 2022-08-20 17:14:50 -05:00
Jeremy Kahn
b8f8bb5bfd feat: persist userId 2022-08-20 16:52:47 -05:00
Jeremy Kahn
74f11dae2a feat: assign userId 2022-08-20 14:20:51 -05:00
Jeremy Kahn
09d039d806 feat: assign ids to messages 2022-08-19 09:42:14 -05:00
Jeremy Kahn
5aa46ebb41 test: validate that message is sent 2022-08-18 22:14:56 -05:00
Jeremy Kahn
3bbe8b1430 test: validate message sending UX 2022-08-18 21:36:13 -05:00
Jeremy Kahn
6ffcd20429 test: validate Room availability 2022-08-18 21:10:16 -05:00
Jeremy Kahn
85c4f24bd6 feat: display received messages 2022-08-18 09:14:13 -05:00
Jeremy Kahn
be160cf29b refactor: use sx prop for styling instead of tailwind 2022-08-17 09:32:18 -05:00
Jeremy Kahn
126456eced feat: add message sending UI 2022-08-17 09:28:22 -05:00
Jeremy Kahn
96f2991209 refactor: simplify Room loading 2022-08-17 09:10:36 -05:00
Jeremy Kahn
7cb7e5fdd5 fix: prevent rerenders from breaking room connection 2022-08-16 21:57:39 -05:00
Jeremy Kahn
9cc26895de refactor: add usePeerRoomAction hook 2022-08-16 09:40:01 -05:00
Jeremy Kahn
40b0b7047e refactor: use absolute module paths 2022-08-16 09:21:33 -05:00
Jeremy Kahn
a4472d6982 feat: prevent clients from other domains from joining the room 2022-08-15 21:47:45 -05:00
Jeremy Kahn
b9e9ae398e fix: prevent Room re-renders from throwing an error 2022-08-15 21:38:56 -05:00
Jeremy Kahn
7948b51cc8 refactor: remove joinRoom method 2022-08-14 21:49:14 -05:00
Jeremy Kahn
33b25e204d feat: send a message to peers 2022-08-14 21:26:50 -05:00
Jeremy Kahn
9c3e96a804 feat: define makeAction 2022-08-14 17:49:31 -05:00
Jeremy Kahn
2ec8c52f7c refactor: configure PeerRoom via constructor 2022-08-14 17:29:24 -05:00
Jeremy Kahn
4eb1d05b92 feat: genericize makeAction 2022-08-14 17:23:05 -05:00
Jeremy Kahn
638587f5a3 chore: define RoomConfig type 2022-08-14 17:20:33 -05:00
Jeremy Kahn
a86e2d6592 refactor: use Room type 2022-08-14 13:21:34 -05:00
Jeremy Kahn
56751f4c23 chore: define trystero types 2022-08-14 13:21:16 -05:00
Jeremy Kahn
53c4415112 refactor: create usePeerRoom hook 2022-08-14 10:10:05 -05:00
Jeremy Kahn
519e27b5c2 feat: join peer room 2022-08-13 12:11:59 -05:00
Jeremy Kahn
583c808f4e fix: support index.html path 2022-08-10 22:31:11 -05:00
Jeremy Kahn
b24fe12a50 feat: implement navigation to public room from home 2022-08-10 22:15:50 -05:00
Jeremy Kahn
36d059329c feat: add room name input text field 2022-08-10 09:42:15 -05:00
Jeremy Kahn
65196ae9c4 feat: wire up public room 2022-08-09 22:14:59 -05:00
Jeremy Kahn
3b1a55067d feat: add basic home content 2022-08-09 21:57:29 -05:00
Jeremy Kahn
da04fcf53b chore: set up MUI theme 2022-08-09 21:41:39 -05:00