diff --git a/src/config/locales/en/translation.json b/src/config/locales/en/translation.json index 06405c53..50a6eb82 100644 --- a/src/config/locales/en/translation.json +++ b/src/config/locales/en/translation.json @@ -139,7 +139,10 @@ } }, "delete": { - "title": "Delete" + "title": "Delete", + "confirm": "Are you sure to delete this filter?", + "confirm_ok": "Delete", + "confirm_cancel": "Cancel" } } }, diff --git a/src/renderer/components/Settings/Filters.vue b/src/renderer/components/Settings/Filters.vue index 4751e972..7bda870f 100644 --- a/src/renderer/components/Settings/Filters.vue +++ b/src/renderer/components/Settings/Filters.vue @@ -60,7 +60,13 @@ export default { return this.$route.params.id }, deleteFilter(id) { - console.log(id) + this.$confirm(this.$t('settings.filters.delete.confirm'), 'Warning', { + confirmButtonText: this.$t('settings.filters.delete.confirm_ok'), + cancelButtonText: this.$t('settings.filters.delete.confirm_cancel'), + type: 'warning' + }).then(() => { + return this.$store.dispatch('Settings/Filters/deleteFilter', id) + }) } } } diff --git a/src/renderer/store/Settings/Filters.ts b/src/renderer/store/Settings/Filters.ts index 93937189..2a55b45e 100644 --- a/src/renderer/store/Settings/Filters.ts +++ b/src/renderer/store/Settings/Filters.ts @@ -42,6 +42,21 @@ export const actions: ActionTree = { } finally { commit(MUTATION_TYPES.CHANGE_LOADING, false) } + }, + deleteFilter: async ({ commit, dispatch, rootState }, id: string) => { + const client = generator( + rootState.TimelineSpace.sns, + rootState.TimelineSpace.account.baseURL, + rootState.TimelineSpace.account.accessToken, + rootState.App.userAgent + ) + try { + commit(MUTATION_TYPES.CHANGE_LOADING, true) + await client.deleteFilter(id) + await dispatch('fetchFilters') + } finally { + commit(MUTATION_TYPES.CHANGE_LOADING, false) + } } }