Feature/save load localstorage#754
Conversation
|
@Flux07-gezz is attempting to deploy a commit to the magic-peach1's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
👋 Thanks for your PR, @Flux07-gezz!Welcome to Reframe — a browser-based video editor built for everyone 🎬
What happens next
Quick checklist
Useful links
Happy coding! 🎉 |
72cc50f to
20c9dae
Compare
20c9dae to
bc0d699
Compare
|
Hey @magic-peach! 👋 Just wanted to give you a heads-up that PR #754 is ready for review — it implements the save/load project state feature using localStorage (closes #686 and #688) . Here's a quick summary of what's in it:
All CI checks are passing. Would love to get your feedback whenever you get a chance! 🙏 |
|
@Flux07-gezz please fix the conflicts |
|
Hey @magic-peach! 👋 While working on PR #754, I noticed 5 bugs in the current Bug 1 — Quality slider is inverted ( Bug 2 — M key mute shortcut removed from Bug 3 — Bug 4 — Missing Bug 5 — None of these are introduced by my PR — happy to open individual GitHub issues for each one if that's easier to track! 🙏 |
|
Hey @Flux07-gezz! This PR has merge conflicts with git fetch origin
git rebase origin/main
# resolve any conflicts
git push --force-with-leaseOnce rebased and CI passes, this can be reviewed for merge. |
|
@magic-peach please check .. if done please merge |
Description
This PR introduces a client-side project state serialization and restoration framework utilizing browser
localStorageunder the versioned keyreframe-projects-v1. Because Reframe functions as a static export application, this enables persistent timeline editing progress across browser reloads without requiring an external database backend.Key Changes:
src/hooks/useVideoEditor.ts: CreatedsaveProject(),listProjects(),loadProject(), anddeleteProject()hooks wrapped in safe error boundaries to avoid browser storage quota crashes.src/components/VideoEditor.tsx: Constructed clean, responsive Save and Load action modals matching Reframe's structural design language.jsx-a11y/click-events-have-key-eventsandno-static-element-interactionschecks. RemovedautoFocushooks to maintain cross-device usability.Note: Due to standard browser memory limitations, raw video binary files/blobs are intentionally not stringified. A dynamic UX callout banner has been integrated into the restoration modal to remind users to re-select their source file after state hydration.
Related Issue
Closes #688
Closes #686
Type of Contribution
Participant Info
Screen Recording
Recording / Loom link: ## Checklist
bun run lintpasses (no ESLint errors) — Verified clean locally with npm run lintbunx tsc --noEmitpasses (no TypeScript errors) — Verified clean locally with npx tsc --noEmitaria-label/ accessible namesconsole.logstatements left in