diff options
| author | anatawa12 <anatawa12@icloud.com> | 2024-05-27 20:54:53 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-27 20:54:53 +0900 |
| commit | 4579be0f5401001bcfc27c4d56133cc910f3f581 (patch) | |
| tree | e6ca129d8d22e5684250a380943bd431ff8c2f4d /packages/frontend/src/ui/deck/antenna-column.vue | |
| parent | New Crowdin updates (#13860) (diff) | |
| download | misskey-4579be0f5401001bcfc27c4d56133cc910f3f581.tar.gz misskey-4579be0f5401001bcfc27c4d56133cc910f3f581.tar.bz2 misskey-4579be0f5401001bcfc27c4d56133cc910f3f581.zip | |
新着ノートをサウンドで通知する機能をdeck UIに追加 (#13867)
* feat(deck-ui): implement note notification
* chore: remove notify in antenna
* docs(changelog): 新着ノートをサウンドで通知する機能をdeck UIに追加
* fix: type error in test
* lint: key order
* fix: remove notify column
* test: remove test for notify
* chore: make sound selectable
* fix: add license header
* fix: add license header again
* Unnecessary await
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
* ファイルを選択してください -> ファイルが選択されていません
* fix: i18n忘れ
* fix: i18n忘れ
* pleaseSelectFile > fileNotSelected
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src/ui/deck/antenna-column.vue')
| -rw-r--r-- | packages/frontend/src/ui/deck/antenna-column.vue | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/packages/frontend/src/ui/deck/antenna-column.vue b/packages/frontend/src/ui/deck/antenna-column.vue index b42a21bf6f..c3dc1e4fce 100644 --- a/packages/frontend/src/ui/deck/antenna-column.vue +++ b/packages/frontend/src/ui/deck/antenna-column.vue @@ -9,18 +9,22 @@ SPDX-License-Identifier: AGPL-3.0-only <i class="ti ti-antenna"></i><span style="margin-left: 8px;">{{ column.name }}</span> </template> - <MkTimeline v-if="column.antennaId" ref="timeline" src="antenna" :antenna="column.antennaId"/> + <MkTimeline v-if="column.antennaId" ref="timeline" src="antenna" :antenna="column.antennaId" @note="onNote"/> </XColumn> </template> <script lang="ts" setup> -import { onMounted, shallowRef } from 'vue'; +import { onMounted, ref, shallowRef, watch } from 'vue'; import XColumn from './column.vue'; import { updateColumn, Column } from './deck-store.js'; import MkTimeline from '@/components/MkTimeline.vue'; import * as os from '@/os.js'; import { misskeyApi } from '@/scripts/misskey-api.js'; import { i18n } from '@/i18n.js'; +import { MenuItem } from '@/types/menu.js'; +import { SoundStore } from '@/store.js'; +import { soundSettingsButton } from '@/ui/deck/tl-note-notification.js'; +import * as sound from '@/scripts/sound.js'; const props = defineProps<{ column: Column; @@ -28,6 +32,7 @@ const props = defineProps<{ }>(); const timeline = shallowRef<InstanceType<typeof MkTimeline>>(); +const soundSetting = ref<SoundStore>(props.column.soundSetting ?? { type: null, volume: 1 }); onMounted(() => { if (props.column.antennaId == null) { @@ -35,6 +40,10 @@ onMounted(() => { } }); +watch(soundSetting, v => { + updateColumn(props.column.id, { soundSetting: v }); +}); + async function setAntenna() { const antennas = await misskeyApi('antennas/list'); const { canceled, result: antenna } = await os.select({ @@ -54,7 +63,11 @@ function editAntenna() { os.pageWindow('my/antennas/' + props.column.antennaId); } -const menu = [ +function onNote() { + sound.playMisskeySfxFile(soundSetting.value); +} + +const menu: MenuItem[] = [ { icon: 'ti ti-pencil', text: i18n.ts.selectAntenna, @@ -65,6 +78,11 @@ const menu = [ text: i18n.ts.editAntenna, action: editAntenna, }, + { + icon: 'ti ti-bell', + text: i18n.ts._deck.newNoteNotificationSettings, + action: () => soundSettingsButton(soundSetting), + }, ]; /* |