diff --git a/src/components/event/EventFormBase.vue b/src/components/event/EventFormBase.vue index 40620187..8d6f53fa 100644 --- a/src/components/event/EventFormBase.vue +++ b/src/components/event/EventFormBase.vue @@ -232,46 +232,43 @@ export default class EventFormBase extends Vue { } beforLeaveGuardinEventEdit = (to, from, next) => { - if (from.name === 'EventEdit') { - if (this.isChanged()) { - if ( - confirm( - '入力されたデータは送信されないまま破棄されますが,よろしいですか。' - ) - ) { - removeDraftConfirmer() - this.cleanupContent() - next() - } else { - next(false) - } - } else { - next() - } - } else { - next() + if (from.name !== 'EventEdit') { + return next() + } + + if (!this.isChanged()) { + return next() } + + if ( + confirm( + '入力されたデータは送信されないまま破棄されますが,よろしいですか。' + ) + ) { + removeDraftConfirmer() + this.cleanupContent() + return next() + } + + return next(false) } + beforLeaveGuardinEventNew = (to, from, next) => { - if (from.name === 'EventNew') { - if (this.isChanged()) { - if ( - confirm( - '入力されたデータは送信されないまま破棄されますが,よろしいですか。' - ) - ) { - removeDraftConfirmer() - this.cleanupContent() - next() - } else { - next(false) - } - } else { - next() - } - } else { - next() + if (from.name !== 'EventNew' || !this.isChanged()) { + return next() } + + if ( + confirm( + '入力されたデータは送信されないまま破棄されますが,よろしいですか。' + ) + ) { + removeDraftConfirmer() + this.cleanupContent() + return next() + } + + return next(false) } mounted() { diff --git a/src/pages/GroupEdit.vue b/src/pages/GroupEdit.vue index 7d9d6c5d..91b72c20 100644 --- a/src/pages/GroupEdit.vue +++ b/src/pages/GroupEdit.vue @@ -110,25 +110,21 @@ export default class GroupEdit extends Vue { } beforeLeaveGuard = (to, from, next) => { - if (from.path === `/groups/edit/${this.groupId}`) { - if (this.isChanged()) { - if ( - confirm( - '入力されたデータは送信されないまま破棄されますが,よろしいですか。' - ) - ) { - removeDraftConfirmer() - this.cleanupContent() - next() - } else { - next(false) - } - } else { - next() - } - } else { - next() + if (from.path !== `/groups/edit/${this.groupId}` || !this.isChanged()) { + return next() } + + if ( + confirm( + '入力されたデータは送信されないまま破棄されますが,よろしいですか。' + ) + ) { + removeDraftConfirmer() + this.cleanupContent() + return next() + } + + return next(false) } async submitGroup() { diff --git a/src/pages/GroupNew.vue b/src/pages/GroupNew.vue index 54412b08..6f9a0adb 100644 --- a/src/pages/GroupNew.vue +++ b/src/pages/GroupNew.vue @@ -78,25 +78,21 @@ export default class GroupNew extends Vue { } beforeLeaveGuard = (to, from, next) => { - if (from.name === 'GroupNew') { - if (this.hasContent()) { - if ( - confirm( - '入力されたデータは送信されないまま破棄されますが,よろしいですか。' - ) - ) { - removeDraftConfirmer() - this.cleanupContent() - next() - } else { - next(false) - } - } else { - next() - } - } else { - next() + if (from.name !== 'GroupNew' || this.hasContent()) { + return next() } + + if ( + confirm( + '入力されたデータは送信されないまま破棄されますが,よろしいですか。' + ) + ) { + removeDraftConfirmer() + this.cleanupContent() + return next() + } + + return next(false) } mounted() {