-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New web based recorder (Instant Mode) #1363
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 48 commits
Commits
Show all changes
57 commits
Select commit
Hold shift + click to select a range
6db535a
wip: Web recorder
richiemcilroy 316f535
Merge branch 'main' into new-web-recorder
richiemcilroy 6031aaf
feat: picture in picture camera
richiemcilroy 1c83f8f
feat: clear errors in web recorder files
richiemcilroy 033ea90
feat: web-backend Videos update
richiemcilroy bb2f923
fix: picture in picture camera switch
richiemcilroy f698b3b
feat: open preferred option (e.g. Window or Display)
richiemcilroy 46fe2ef
feat: Settings dialog + auto select last device
richiemcilroy 205e47e
feat: various styling bits for the web recorder
richiemcilroy 00d511f
feat: web recorder cleanup
richiemcilroy 2d01b70
fmt
richiemcilroy faaca08
feat: component cleanup / division
richiemcilroy fe680cf
feat: In progress recording bar
richiemcilroy 8143eab
feat: Instant Mode for web recorder
richiemcilroy 33d2ec3
feat: Browser compatibility
richiemcilroy abce7c2
feat: PiP gesture fix
richiemcilroy e8a5a76
feat: Pause button + start/stop sounds
richiemcilroy 52f4bf2
feat: Improved web recorder resilience + stream management
richiemcilroy b29b9c0
revert: remove desktop changes from PR
richiemcilroy 19f7267
revert: remove remaining desktop/src changes from PR
richiemcilroy c6dd107
revert: remove changes outside apps/web, web-backend, and web-domain
richiemcilroy 336195c
revert: remove unwanted changes from web recorder PR
richiemcilroy 4148b2b
revert: remove DeleteOrg files and changelog entry
richiemcilroy e92b598
Revert "revert: remove DeleteOrg files and changelog entry"
richiemcilroy a4240ed
feat: Chunk uploading
richiemcilroy 31a5d2d
feat: Restart recording + segment progress
richiemcilroy 5cf5fa2
fmt
richiemcilroy 3abe570
add env workspace
richiemcilroy 6fd1188
feat: use webMP4 for web recordings
richiemcilroy 816b494
fmt
richiemcilroy 912fbc3
feat: Popover progress indicator
richiemcilroy 8cf485c
feat: Web recorder free plan limits
richiemcilroy 044e583
revert: undo PR changes to MobileTab and spaces page
richiemcilroy 425755a
coderabbit bits
richiemcilroy e5139c7
coderabbit suggestions
richiemcilroy 1aa82d1
Filter out devices with empty deviceId
richiemcilroy 0bb8cca
Add support for aborting multipart uploads
richiemcilroy bf63dd9
Add retry logic for S3 video result deletion
richiemcilroy a880d45
Add revalidatePath calls after video result deletion
richiemcilroy 2b279b2
Refactor WebRecorderDialog to new directory structure
richiemcilroy 928c78e
Refactor bucketId handling in video upload actions
richiemcilroy 52d03d3
Update useEffect dependencies in CameraPreviewWindow
richiemcilroy 5e79d71
Add cleanup for recording timer on unmount
richiemcilroy 17a60b8
Fix timer interval reset in useRecordingTimer
richiemcilroy 116ca00
format
richiemcilroy d35180c
Add @radix-ui/react-dialog and update video queries
richiemcilroy cabc314
Update page.tsx
richiemcilroy 74f7d53
Add effectiveCreatedAt to video props
richiemcilroy 68b83f1
Move S3 result file deletion outside DB transaction
richiemcilroy 443497b
Remove console.log from recording upload
richiemcilroy c8cdab5
Disable status pill interactions when component is disabled
richiemcilroy d67f5ed
Refactor video deletion to use useEffectMutation
richiemcilroy 6b84461
Refactor video upload and abort handling
richiemcilroy 1aa06a3
Fix stale closure in cleanup effect for recorder
richiemcilroy 69b32bc
format
richiemcilroy d2d4dd3
Add provideOptionalAuth to upload API routes
richiemcilroy 91f9acd
Show error toast for unsupported browsers in dialog
richiemcilroy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
apps/web/app/(org)/dashboard/caps/components/sendProgressUpdate.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| import { EffectRuntime } from "@/lib/EffectRuntime"; | ||
| import { withRpc } from "@/lib/Rpcs"; | ||
| import type { VideoId } from "./web-recorder-dialog/web-recorder-types"; | ||
|
|
||
| export const sendProgressUpdate = async ( | ||
| videoId: VideoId, | ||
| uploaded: number, | ||
| total: number, | ||
| ) => { | ||
| try { | ||
| await EffectRuntime.runPromise( | ||
| withRpc((rpc) => | ||
| rpc.VideoUploadProgressUpdate({ | ||
| videoId, | ||
| uploaded, | ||
| total, | ||
| updatedAt: new Date(), | ||
| }), | ||
| ), | ||
| ); | ||
| } catch (error) { | ||
| console.error("Failed to send progress update:", error); | ||
| } | ||
| }; |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.