Browse Source

Use action name as confirmation modal title

pull/1774/head
Andrew Kingston 5 years ago
parent
commit
b7991ea894
  1. 2
      packages/client/src/components/ConfirmationDisplay.svelte
  2. 4
      packages/client/src/store/confirmation.js
  3. 20
      packages/client/src/utils/buttonActions.js

2
packages/client/src/components/ConfirmationDisplay.svelte

@ -6,7 +6,7 @@
{#if $confirmationStore.showConfirmation}
<Modal fixed on:cancel={confirmationStore.actions.cancel}>
<ModalContent
title="Confirm Action"
title={$confirmationStore.title}
onConfirm={confirmationStore.actions.confirm}
>
{$confirmationStore.text}

4
packages/client/src/store/confirmation.js

@ -2,6 +2,7 @@ import { writable, get } from "svelte/store"
const initialState = {
showConfirmation: false,
title: null,
text: null,
callback: null,
}
@ -9,9 +10,10 @@ const initialState = {
const createConfirmationStore = () => {
const store = writable(initialState)
const showConfirmation = (text, callback) => {
const showConfirmation = (title, text, callback) => {
store.set({
showConfirmation: true,
title,
text,
callback,
})

20
packages/client/src/utils/buttonActions.js

@ -107,15 +107,19 @@ export const enrichButtonActions = (actions, context) => {
if (action.parameters?.confirm) {
const defaultText = confirmTextMap[action["##eventHandlerType"]]
const confirmText = action.parameters?.confirmText || defaultText
confirmationStore.actions.showConfirmation(confirmText, async () => {
// When confirmed, execute this action immediately,
// then execute the rest of the actions in the chain
const result = await callback()
if (result !== false) {
const next = enrichButtonActions(actions.slice(i + 1), context)
await next()
confirmationStore.actions.showConfirmation(
action["##eventHandlerType"],
confirmText,
async () => {
// When confirmed, execute this action immediately,
// then execute the rest of the actions in the chain
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,
// as the callback continues the action chain

Loading…
Cancel
Save