Skip to content

feat: add interactive dual-thumb timeline range slider with live video scrubbing#865

Open
SatyaViswas wants to merge 1 commit into
magic-peach:mainfrom
SatyaViswas:feat/timeline-trim-slider
Open

feat: add interactive dual-thumb timeline range slider with live video scrubbing#865
SatyaViswas wants to merge 1 commit into
magic-peach:mainfrom
SatyaViswas:feat/timeline-trim-slider

Conversation

@SatyaViswas
Copy link
Copy Markdown

Description

This PR introduces an interactive, dual-thumb range slider overlay directly on top of the trimming timeline to drastically elevate the visual editing workflow.
Key changes include:

  • Interactive Timeline Tracks: Implemented dual-thumb visual handles inside src/components/TrimControl.tsx overlaying the WaveformCanvas container. Powered by standard React pointer events (onPointerDown, onPointerMove, onPointerUp) to guarantee native desktop and touch-screen responsiveness.
  • Live Video Scrubbing: Hooked the active dragging state into the parent seekTo context passed down via src/components/VideoEditor.tsx. The HTML5 video element now mirrors timeline adjustments frame-by-frame in real-time.
  • URL Caching Optimization: Wrapped the query-parameter tracking mechanism within src/hooks/useVideoEditor.ts inside a 500ms debounce loop. This completely eliminates client-side SecurityError page crashes caused by rapid history.replaceState triggers during handle scrubbing.
  • Accessibility Maintained: Retained full functionality of the native numeric inputs underneath the track for pixel-perfect millisecond precision and accessible screen-reader compatibility.

Related Issue

Fixes #855

Type of Contribution

  • Bug fix
  • New feature
  • Documentation update
  • GSSoC contribution

Participant Info

  • GitHub username: @SatyaViswas
  • Contribution level (Beginner/Intermediate/Advanced): Intermediate/Advanced

Screen Recording

Before:

Screen.Recording.2026-05-21.at.7.30.34.PM.mov

After:

Screen.Recording.2026-05-21.at.7.28.16.PM.mov

Checklist

  • I have read the contribution guidelines
  • My changes follow the project structure
  • I have tested my changes in Chrome, Firefox, and Safari
  • bun run lint passes (no ESLint errors)
  • bunx tsc --noEmit passes (no TypeScript errors)
  • New interactive elements have aria-label / accessible names
  • No console.log statements left in
  • This PR is related to a valid issue
  • Screen recording attached above (required for UI/feature/design changes)

@vercel
Copy link
Copy Markdown

vercel Bot commented May 21, 2026

@SatyaViswas 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.

@github-actions
Copy link
Copy Markdown
Contributor

👋 Thanks for your PR, @SatyaViswas!

Welcome to Reframe — a browser-based video editor built for everyone 🎬

🟠 GSSoC'26 PR detected — thanks for contributing under GirlScript Summer of Code 2026!

What happens next

  1. 🤖 Automated checks — build & TypeScript typecheck will run automatically
  2. Vercel preview — a preview deployment will be created (requires maintainer authorization for fork PRs)
  3. 👀 Code review — a maintainer will review your changes
  4. 🚀 Merge — once approved, your PR will be merged!

Quick checklist

  • PR title follows Conventional Commits (e.g. feat: add dark mode)
  • Linked the issue this PR closes (e.g. Closes #123)
  • Tested the changes locally (bun run dev)
  • Build passes (bun run build)

Useful links

Happy coding! 🎉

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 21, 2026

✅ PR Format Check Passed — @SatyaViswas

Basic format checks passed. A maintainer will review your code changes.

This does not mean the PR is approved — it just means the format is correct.

@github-actions github-actions Bot added level:intermediate Intermediate level - 35 pts type:bug Bug fix gssoc'26 GirlScript Summer of Code 2026 type:design UI/UX design type:docs Documentation type:feature New feature labels May 21, 2026
@magic-peach
Copy link
Copy Markdown
Owner

Hey @SatyaViswas! CI hasn't run on this PR yet. Please rebase on main to trigger the build/lint/typecheck checks:

git fetch origin
git rebase origin/main
git push --force-with-lease

Also, please attach a screen recording showing your change working in the browser (see CONTRIBUTING.md for instructions). Both CI and a recording are required before a PR can be merged.

@SatyaViswas SatyaViswas force-pushed the feat/timeline-trim-slider branch from 9aa66bc to 086b11f Compare May 21, 2026 16:36
@SatyaViswas
Copy link
Copy Markdown
Author

Hey @magic-peach , I have resolved the conflicts on this branch! Also I attached the screen recording before already, but I am attaching again.

Screen.Recording.2026-05-21.at.7.28.16.PM.mov

@SatyaViswas SatyaViswas force-pushed the feat/timeline-trim-slider branch from 086b11f to 95ddcc1 Compare May 22, 2026 06:29
@SatyaViswas
Copy link
Copy Markdown
Author

Hey @magic-peach , just to remind, I resolved all conflicts and my PR is upto date with the main branch. Please review and merge my PR!

@SatyaViswas SatyaViswas force-pushed the feat/timeline-trim-slider branch from 95ddcc1 to b2b4fc9 Compare May 23, 2026 03:16
@SatyaViswas
Copy link
Copy Markdown
Author

Hey @magic-peach. I resolved all the latest conflicts and my PR is upto date with the main branch. Please review and merge my PR!

@SatyaViswas SatyaViswas force-pushed the feat/timeline-trim-slider branch from b2b4fc9 to 3225a06 Compare May 23, 2026 11:31
@github-actions github-actions Bot added the level:advanced Advanced level - 55 pts label May 23, 2026
@SatyaViswas
Copy link
Copy Markdown
Author

SatyaViswas commented May 23, 2026

Hey @magic-peach , could you please review this PR and close it, so that I could work on new issue!

I also solved the Application error shown in image which occurs when we use adjustment or trim options too many times:
Screenshot 2026-05-23 at 5 06 19 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc'26 GirlScript Summer of Code 2026 level:advanced Advanced level - 55 pts level:intermediate Intermediate level - 35 pts type:bug Bug fix type:design UI/UX design type:docs Documentation type:feature New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Add interactive dual-thumb range slider for timeline video trimming

2 participants