I'm implementing a global confirm dialog feature.
For example: The confirm dialog will open when a user clicks a "publish" button to publish an article.
- The user clicks the publish button triggers the function "openConfirmDialog()".
- Show the confirm dialog.
- Wait for the user to click the "confirm" button.
- The function( onConfirm() ) in "confirmDialog.vue" will be triggered when the confirm button is clicked.
Questions:
How can I pass and trigger a dynamic action(in this example: pubishArticle ) when the user click the "confirm" button?
Component - confirmDialog.vue Cancel button:
protected onCancel() {
this.$store.actions.closeConfirmDialog()
}
Confirm button:
protected onConfirm() {
this.$store.actions.proceedConfirmDialog()
}
confirm dialog vuex module store actions:
async openConfirmDialog(
context: ActionContext<ConfirmDialogState, any>,
payload: SetConfirmDialogPayloadParams
) {
context.commit(types.CONFIRM_DIALOG_SET_CONTENT, payload.content)
},
Confirm button action:
async proceedConfirmDialog(context: ActionContext<ConfirmDialogState, any>) {}
frontend views - demo.vue:
public openConfirmDialog() {
this.$store.myActions.openConfirmDialog({
content: {
message: 'are you sure?',
}
})
}
publish article vuex module store action:
async pubishArticle(){....}