Use action name as confirmation modal title
This commit is contained in:
parent
0d99c69fe6
commit
785f724dda
|
@ -6,7 +6,7 @@
|
||||||
{#if $confirmationStore.showConfirmation}
|
{#if $confirmationStore.showConfirmation}
|
||||||
<Modal fixed on:cancel={confirmationStore.actions.cancel}>
|
<Modal fixed on:cancel={confirmationStore.actions.cancel}>
|
||||||
<ModalContent
|
<ModalContent
|
||||||
title="Confirm Action"
|
title={$confirmationStore.title}
|
||||||
onConfirm={confirmationStore.actions.confirm}
|
onConfirm={confirmationStore.actions.confirm}
|
||||||
>
|
>
|
||||||
{$confirmationStore.text}
|
{$confirmationStore.text}
|
||||||
|
|
|
@ -2,6 +2,7 @@ import { writable, get } from "svelte/store"
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
showConfirmation: false,
|
showConfirmation: false,
|
||||||
|
title: null,
|
||||||
text: null,
|
text: null,
|
||||||
callback: null,
|
callback: null,
|
||||||
}
|
}
|
||||||
|
@ -9,9 +10,10 @@ const initialState = {
|
||||||
const createConfirmationStore = () => {
|
const createConfirmationStore = () => {
|
||||||
const store = writable(initialState)
|
const store = writable(initialState)
|
||||||
|
|
||||||
const showConfirmation = (text, callback) => {
|
const showConfirmation = (title, text, callback) => {
|
||||||
store.set({
|
store.set({
|
||||||
showConfirmation: true,
|
showConfirmation: true,
|
||||||
|
title,
|
||||||
text,
|
text,
|
||||||
callback,
|
callback,
|
||||||
})
|
})
|
||||||
|
|
|
@ -107,15 +107,19 @@ export const enrichButtonActions = (actions, context) => {
|
||||||
if (action.parameters?.confirm) {
|
if (action.parameters?.confirm) {
|
||||||
const defaultText = confirmTextMap[action["##eventHandlerType"]]
|
const defaultText = confirmTextMap[action["##eventHandlerType"]]
|
||||||
const confirmText = action.parameters?.confirmText || defaultText
|
const confirmText = action.parameters?.confirmText || defaultText
|
||||||
confirmationStore.actions.showConfirmation(confirmText, async () => {
|
confirmationStore.actions.showConfirmation(
|
||||||
// When confirmed, execute this action immediately,
|
action["##eventHandlerType"],
|
||||||
// then execute the rest of the actions in the chain
|
confirmText,
|
||||||
const result = await callback()
|
async () => {
|
||||||
if (result !== false) {
|
// When confirmed, execute this action immediately,
|
||||||
const next = enrichButtonActions(actions.slice(i + 1), context)
|
// then execute the rest of the actions in the chain
|
||||||
await next()
|
const result = await callback()
|
||||||
|
if (result !== false) {
|
||||||
|
const next = enrichButtonActions(actions.slice(i + 1), context)
|
||||||
|
await next()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
)
|
||||||
|
|
||||||
// Stop enriching actions when encountering a confirmable action,
|
// Stop enriching actions when encountering a confirmable action,
|
||||||
// as the callback continues the action chain
|
// as the callback continues the action chain
|
||||||
|
|
Loading…
Reference in New Issue