refs #1471 Handle follow request when receive it in websocket

This commit is contained in:
AkiraFukushima 2020-05-23 23:21:33 +09:00
parent 4eea07d269
commit da69efcb72
9 changed files with 33 additions and 1 deletions

View File

@ -13,6 +13,7 @@ const state = (): NotificationState => {
reblog: true,
favourite: true,
follow: true,
follow_request: true,
reaction: true
}
}
@ -60,6 +61,7 @@ describe('Preferences/Notification', () => {
reblog: false,
favourite: false,
follow: false,
follow_request: false,
reaction: false
}
}
@ -73,6 +75,7 @@ describe('Preferences/Notification', () => {
reblog: false,
favourite: false,
follow: false,
follow_request: false,
reaction: false
}
})
@ -97,6 +100,7 @@ describe('Preferences/Notification', () => {
reblog: false,
favourite: true,
follow: true,
follow_request: true,
reaction: true
}
})

View File

@ -10,6 +10,7 @@ describe('Preferences/Notification', () => {
reblog: true,
favourite: true,
follow: true,
follow_request: true,
reaction: true
}
}

View File

@ -180,6 +180,7 @@
"reblog": "Notify me when I receive a reblog",
"favourite": "Notify me when I receive a favourite",
"follow": "Notify me when I receive a follow",
"follow_request": "Notify me when I receive a follow request",
"reaction": "Notify me when I receive a emoji reaction"
}
},

View File

@ -1421,6 +1421,15 @@ const createNotification = (notification: Entity.Notification, notifyConfig: Not
} as NotificationConstructorOptions
}
break
case 'follow_request':
if (notifyConfig.follow_request) {
return {
title: i18next.t('notification.follow_request.title'),
body: i18next.t('notification.follow_request.body', { username: username(notification.account) }),
silent: false
} as NotificationConstructorOptions
}
break
case 'mention':
if (notifyConfig.reply) {
return {

View File

@ -46,6 +46,7 @@ const notify: Notify = {
reblog: true,
favourite: true,
follow: true,
follow_request: true,
reaction: true
}

View File

@ -1,7 +1,7 @@
<template>
<div id="notification">
<h2>{{ $t('preferences.notification.title') }}</h2>
<el-form class="section" label-position="right" label-width="300px" size="small">
<el-form class="section" label-position="right" label-width="360px" size="small">
<p class="description">{{ $t('preferences.notification.enable.description') }}</p>
<el-form-item for="notifyReply" :label="$t('preferences.notification.enable.reply')">
<el-switch id="notifyReply" v-model="notifyReply" active-color="#13ce66"> </el-switch>
@ -18,6 +18,9 @@
<el-form-item for="notifyFollow" :label="$t('preferences.notification.enable.follow')">
<el-switch v-model="notifyFollow" active-color="#13ce66"> </el-switch>
</el-form-item>
<el-form-item for="notifyFollowRequest" :label="$t('preferences.notification.enable.follow_request')">
<el-switch v-model="notifyFollowRequest" active-color="#13ce66"> </el-switch>
</el-form-item>
</el-form>
</div>
</template>
@ -66,6 +69,16 @@ export default {
})
}
},
notifyFollowRequest: {
get() {
return this.$store.state.Preferences.Notification.notification.notify.follow_request
},
set(value) {
this.$store.dispatch('Preferences/Notification/updateNotify', {
follow_request: value
})
}
},
notifyReaction: {
get() {
return this.$store.state.Preferences.Notification.notification.notify.reaction

View File

@ -40,6 +40,7 @@ const state = (): AppState => ({
reblog: true,
favourite: true,
follow: true,
follow_request: true,
reaction: true
},
tootPadding: 8,

View File

@ -17,6 +17,7 @@ const state: NotificationState = {
reblog: true,
favourite: true,
follow: true,
follow_request: true,
reaction: true
}
}

View File

@ -3,5 +3,6 @@ export type Notify = {
reblog: boolean
favourite: boolean
follow: boolean
follow_request: boolean
reaction: boolean
}