diff --git a/frontend/src/lib/components/Toast.svelte b/frontend/src/lib/components/Toast.svelte
index d58790b196..6eae1fd24e 100644
--- a/frontend/src/lib/components/Toast.svelte
+++ b/frontend/src/lib/components/Toast.svelte
@@ -1,11 +1,14 @@
-{#if app}
-
-{/if}
+{#key redraw}
+ {#if app}
+
+ {/if}
+{/key}
diff --git a/frontend/src/routes/(root)/(logged)/flows/add/+page.svelte b/frontend/src/routes/(root)/(logged)/flows/add/+page.svelte
index cb1fec14c0..9c62dca5c7 100644
--- a/frontend/src/routes/(root)/(logged)/flows/add/+page.svelte
+++ b/frontend/src/routes/(root)/(logged)/flows/add/+page.svelte
@@ -55,7 +55,24 @@
$importFlowStore = undefined
sendUserToast('Flow loaded from JSON')
} else if (!templatePath && !hubId && state) {
- sendUserToast('Flow restored from draft')
+ sendUserToast('Flow restored from draft', false, [
+ {
+ label: 'Start from blank instead',
+ callback: () => {
+ $flowStore = {
+ summary: '',
+ value: { modules: [] },
+ path: '',
+ edited_at: '',
+ edited_by: '',
+ archived: false,
+ extra_perms: {},
+ schema: emptySchema()
+ }
+ }
+ }
+ ])
+
flow = state.flow
state?.selectedId && (selectedId = state?.selectedId)
} else {
diff --git a/frontend/src/routes/(root)/(logged)/flows/edit/[...path]/+page.svelte b/frontend/src/routes/(root)/(logged)/flows/edit/[...path]/+page.svelte
index 0a19a17870..38a07582a7 100644
--- a/frontend/src/routes/(root)/(logged)/flows/edit/[...path]/+page.svelte
+++ b/frontend/src/routes/(root)/(logged)/flows/edit/[...path]/+page.svelte
@@ -40,7 +40,19 @@
loading = true
let flow: Flow
if (stateLoadedFromUrl != undefined && stateLoadedFromUrl?.flow?.path == $page.params.path) {
- sendUserToast('Flow restored from draft')
+ sendUserToast('Flow restored from draft', false, [
+ {
+ label: 'Restore last saved version instead',
+ callback: () => {
+ FlowService.getFlowByPath({
+ workspace: $workspaceStore!,
+ path: $page.params.path
+ }).then((flow) => {
+ $flowStore = flow
+ })
+ }
+ }
+ ])
flow = stateLoadedFromUrl.flow
} else {
flow = await FlowService.getFlowByPath({