Create confirm utils

This commit is contained in:
Adria Navarro 2025-03-14 14:40:41 +01:00
parent 7be33806ce
commit 7f4d7a577c
3 changed files with 39 additions and 22 deletions

View File

@ -25,7 +25,7 @@
EditorModes,
} from "@/components/common/CodeMirrorEditor.svelte"
import RestBodyInput from "./RestBodyInput.svelte"
import { capitalise } from "@/helpers"
import { capitalise, confirm } from "@/helpers"
import { onMount } from "svelte"
import restUtils from "@/helpers/data/utils"
import {
@ -37,7 +37,6 @@
} from "@/constants/backend"
import JSONPreview from "@/components/integration/JSONPreview.svelte"
import AccessLevelSelect from "@/components/integration/AccessLevelSelect.svelte"
import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
import DynamicVariableModal from "./DynamicVariableModal.svelte"
import Placeholder from "assets/bb-spaceship.svg"
import { cloneDeep } from "lodash/fp"
@ -485,26 +484,12 @@
return true
}
const shouldSave = await new Promise(resolve => {
const dialog = new ConfirmDialog({
target: document.body,
props: {
title: "Some updates are not saved",
body: "Some of your changes are not yet saved. Do you want to save them before leaving?",
okText: "Save and continue",
cancelText: "Discard and continue",
size: "M",
onOk: () => {
dialog.$destroy()
resolve(true)
},
onCancel: () => {
dialog.$destroy()
resolve(false)
},
},
})
dialog.show()
const shouldSave = await confirm({
title: "Some updates are not saved",
body: "Some of your changes are not yet saved. Do you want to save them before leaving?",
okText: "Save and continue",
cancelText: "Discard and continue",
size: "M",
})
if (!shouldSave) {

View File

@ -0,0 +1,31 @@
import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
export async function confirm(props: {
title: string
body?: string
okText?: string
cancelText?: string
size?: "S" | "M" | "L" | "XL"
}) {
return await new Promise(resolve => {
const dialog = new ConfirmDialog({
target: document.body,
props: {
title: props.title,
body: props.body,
okText: props.okText,
cancelText: props.cancelText,
size: props.size,
onOk: () => {
dialog.$destroy()
resolve(true)
},
onCancel: () => {
dialog.$destroy()
resolve(false)
},
},
})
dialog.show()
})
}

View File

@ -11,3 +11,4 @@ export {
} from "./helpers"
export * as featureFlag from "./featureFlags"
export * as bindings from "./bindings"
export * from "./confirm"