Skip to content

feat(export): Allow re-saving exported video on dialog cancel#181

Open
sidneycodes1 wants to merge 1 commit intosiddharthvaddem:mainfrom
sidneycodes1:feature/contributingtothetypescriptcode
Open

feat(export): Allow re-saving exported video on dialog cancel#181
sidneycodes1 wants to merge 1 commit intosiddharthvaddem:mainfrom
sidneycodes1:feature/contributingtothetypescriptcode

Conversation

@sidneycodes1
Copy link

Pull Request Template

Description

This PR introduces a recovery mechanism for exported videos when the native save dialog is cancelled. It updates

VideoEditor.tsx
to preserve the rendered video buffer in state and adds a "Choose Save Location" button to

SettingsPanel.tsx
to let users trigger the save dialog again without re-rendering.

Motivation

Currently, if a user exports a video or GIF and accidentally cancels the operating system's save dialog, the rendered buffer is immediately discarded. This forces the user to sit through the entire CPU-intensive rendering process over again just to save the file. This change improves the UX by keeping the buffer in memory so the file can be saved instantly when the user is ready.

Type of Change

Bug Fix (fixes unintentional data loss of the rendered buffer upon dialog cancellation).

Related Issue(s)

No related issue.

Screenshots / Video

Screenshot (if applicable):

Video (if applicable):

NONE

Testing

Exported a video and intentionally cancelled the native OS save dialog.
Verified that the new "Choose Save Location" button correctly appeared in the settings panel.
Clicked the button and verified the save dialog reappeared.
Saved the file and confirmed it wrote to disk successfully without triggering a re-render.
Verified the recovery state appropriately clears on a successful save and when starting a fresh export.
Verified TypeScript compilation passes locally.

Checklist

  • I have performed a self-review of my own code.
  • My changes follow the project’s coding standards.
  • Related issues are linked (if applicable).

Thank you for contributing!

@siddharthvaddem
Copy link
Owner

LGTM. Will merge it once the conflicts have been resolved. Thanks 🙏

@siddharthvaddem
Copy link
Owner

I need to fix linter idk why its detecting random changes. or force the linter as pre merge check or something.

@sidneycodes1
Copy link
Author

I need to fix linter idk why its detecting random changes. or force the linter as pre merge check or something.

Thanks! I’ll resolve the merge conflicts shortly and ensure the linter passes before pushing the update.

@sidneycodes1 sidneycodes1 reopened this Mar 3, 2026
if (mounted) setWallpaperPaths(WALLPAPER_RELATIVE.map(p => `/${p}`))
}
})()
; (async () => {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is this semicolor doing here?

@8sami
Copy link

8sami commented Mar 3, 2026

I need to fix linter idk why its detecting random changes. or force the linter as pre merge check or something.

also add prettier in the pre commit check

@8sami
Copy link

8sami commented Mar 3, 2026

fixes #156

@siddharthvaddem
Copy link
Owner

Can you rebase on top of main (new PR checks before merge can go in, and also resolve the conflicts?) I'd like this to go in the next release.

@sidneycodes1
Copy link
Author

Can you rebase on top of main (new PR checks before merge can go in, and also resolve the conflicts?) I'd like this to go in the next release.

On it

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants