summaryrefslogtreecommitdiff
path: root/src/client/init.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2020-02-20 06:08:49 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2020-02-20 06:08:49 +0900
commitb8e7df198d5eabbf8c0d82f4aee86a38168d8d71 (patch)
tree922f2872df0da14557bb0af1b04ceeb99255c2e0 /src/client/init.ts
parent12.17.0 (diff)
downloadmisskey-b8e7df198d5eabbf8c0d82f4aee86a38168d8d71.tar.gz
misskey-b8e7df198d5eabbf8c0d82f4aee86a38168d8d71.tar.bz2
misskey-b8e7df198d5eabbf8c0d82f4aee86a38168d8d71.zip
Improve sound
Diffstat (limited to 'src/client/init.ts')
-rw-r--r--src/client/init.ts99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/client/init.ts b/src/client/init.ts
index 69f071ddcf..d333a1289f 100644
--- a/src/client/init.ts
+++ b/src/client/init.ts
@@ -189,6 +189,13 @@ os.init(async () => {
if (cb) vm.$once('closed', cb);
(vm as any).focus();
},
+ sound(type: string) {
+ const sound = this.$store.state.device['sfx' + type.substr(0, 1).toUpperCase() + type.substr(1)];
+ if (sound == null) return;
+ const audio = new Audio(`/assets/sounds/${sound}.mp3`);
+ audio.volume = this.$store.state.device.sfxVolume;
+ audio.play();
+ }
},
router: router,
render: createEl => createEl(App)
@@ -198,4 +205,96 @@ os.init(async () => {
// マウント
app.$mount('#app');
+
+ if (app.$store.getters.isSignedIn) {
+ const main = os.stream.useSharedConnection('main');
+
+ // 自分の情報が更新されたとき
+ main.on('meUpdated', i => {
+ app.$store.dispatch('mergeMe', i);
+ });
+
+ main.on('readAllNotifications', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadNotification: false
+ });
+ });
+
+ main.on('unreadNotification', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadNotification: true
+ });
+ });
+
+ main.on('unreadMention', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadMentions: true
+ });
+ });
+
+ main.on('readAllUnreadMentions', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadMentions: false
+ });
+ });
+
+ main.on('unreadSpecifiedNote', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadSpecifiedNotes: true
+ });
+ });
+
+ main.on('readAllUnreadSpecifiedNotes', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadSpecifiedNotes: false
+ });
+ });
+
+ main.on('readAllMessagingMessages', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadMessagingMessage: false
+ });
+ });
+
+ main.on('unreadMessagingMessage', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadMessagingMessage: true
+ });
+
+ app.sound('chatBg');
+ });
+
+ main.on('readAllAntennas', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadAntenna: false
+ });
+ });
+
+ main.on('unreadAntenna', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadAntenna: true
+ });
+
+ app.sound('antenna');
+ });
+
+ main.on('readAllAnnouncements', () => {
+ app.$store.dispatch('mergeMe', {
+ hasUnreadAnnouncement: false
+ });
+ });
+
+ main.on('clientSettingUpdated', x => {
+ app.$store.commit('settings/set', {
+ key: x.key,
+ value: x.value
+ });
+ });
+
+ // トークンが再生成されたとき
+ // このままではMisskeyが利用できないので強制的にサインアウトさせる
+ main.on('myTokenRegenerated', () => {
+ os.signout();
+ });
+ }
});