* first pass implementation
* remove screenrecord shortcut hint
* refactor
* fix: prevent mirror review of screen recording
* feat: allow recording with webcam overlay
* fix: review screen recording without clipped content
* tidy keyboard hints consistent position
* refactor: re-use one component for screen picker
huddles and screen clips use same picker component now. We had to make
sure that tailwind works for both of them.
* fix: improve visibility of keyboard hints
During compose video or screen recording, the keyboard hints were
invisible if the content was super bright.
This created some distortion because while we were hiding the autoplay
window, this would not stop it's media. It's better to stop the media
completely
Resolves#110
Goes the extra mile and supports markdown for sending code and formatted
text, almost document-like. It feels more like GitHub's comments and
text areas.
Now we have network root and stream-view defining their own hints
instead of trying to re-use one component. And we also introduce an
overlay for additional commands for people.
- Reduces surface area
- Reduces options for people (less cognitive load)
- One way to use the product
- List view works better for keyboard shortcuts
- List view has basics such as recency
* refactor: use interfaces for function params
* cleanup message retention code
* support open / closed streams
- Tabs for viewing separately
- Context menu to close / open streams
- Update stream particle status field
* ui tweak
* show stream state in stream-view
* ui tweaks
* cleanup message retention from orion api
* add token endpoint for livekit
* fix: invalid type passed to hook
* fix: inject livekit env variables for orion
* fix: show controls indicator above stream # shortcut
* return livekit server url from api
* simple huddle implementation with streams
* set human name in livekit room context
* simplify deployment tooling
* join huddle with audio automatically
* feat: show when there is an active huddle
This introduces a webhook which listens to events from livekit and
updates our firestore stream particle. It keeps the client simple,
reacting to changes to firestore docs.
* use headphones icon for huddles
* fix: screenshare not working in electron
The default VideoConference component from livekit doesn't support
screenshare in electron. This attempts to compose our own layout with
livekit components ourselves and introduces our own flow for
screenshare.
* prototype with two windows
* use deps in separate window render process
* enhance autoplay into desktop overlay
* fix: autoplay window not applying tailwind styles
This was causing issues in which the last_child_created_at field for
stream particles was slightly after the actual particle's creation time,
and so comparing whether it's unseen merely via the playback markers
would be inaccurate.