fix: add no changes popup when saving draft (#2571)

This commit is contained in:
HugoCasa
2023-11-06 18:25:52 +01:00
committed by GitHub
parent abda93c40a
commit d3dbb18815
3 changed files with 31 additions and 7 deletions
+10 -2
View File
@@ -109,14 +109,22 @@
let loadingSave = false
let loadingDraft = false
async function saveDraft(): Promise<void> {
async function saveDraft(forceSave = false): Promise<void> {
if (!newFlow && !savedFlow) {
return
}
if (savedFlow) {
const draftOrDeployed = cleanValueProperties(savedFlow.draft || savedFlow)
const current = cleanValueProperties($flowStore)
if (orderedJsonStringify(draftOrDeployed) === orderedJsonStringify(current)) {
if (!forceSave && orderedJsonStringify(draftOrDeployed) === orderedJsonStringify(current)) {
sendUserToast('No changes detected, ignoring', false, [
{
label: 'Save anyway',
callback: () => {
saveDraft(true)
}
}
])
return
}
}
@@ -221,14 +221,22 @@
loadingSave = false
}
async function saveDraft(): Promise<void> {
async function saveDraft(forceSave = false): Promise<void> {
if (initialPath != '' && !savedScript) {
return
}
if (savedScript) {
const draftOrDeployed = cleanValueProperties(savedScript.draft || savedScript)
const current = cleanValueProperties(script)
if (orderedJsonStringify(draftOrDeployed) === orderedJsonStringify(current)) {
if (!forceSave && orderedJsonStringify(draftOrDeployed) === orderedJsonStringify(current)) {
sendUserToast('No changes detected, ignoring', false, [
{
label: 'Save anyway',
callback: () => {
saveDraft(true)
}
}
])
return
}
}
@@ -344,7 +344,7 @@
draftDrawerOpen = false
}
async function saveDraft() {
async function saveDraft(forceSave = false) {
if ($page.params.path == undefined) {
// initial draft
draftDrawerOpen = true
@@ -360,7 +360,15 @@
path: newPath || savedApp.draft?.path || savedApp.path,
policy
})
if (orderedJsonStringify(draftOrDeployed) === orderedJsonStringify(current)) {
if (!forceSave && orderedJsonStringify(draftOrDeployed) === orderedJsonStringify(current)) {
sendUserToast('No changes detected, ignoring', false, [
{
label: 'Save anyway',
callback: () => {
saveDraft(true)
}
}
])
return
}
loading.saveDraft = true
@@ -1123,7 +1131,7 @@
<Button
loading={loading.save}
startIcon={{ icon: faSave }}
on:click={saveDraft}
on:click={() => saveDraft()}
disabled={$page.params.path !== undefined && !savedApp}
size="xs"
>