summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkNotificationSettingWindow.vue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-09-29 18:11:30 +0900
committerGitHub <noreply@github.com>2023-09-29 18:11:30 +0900
commit7adc8fcaf5e7a57edfd2c197fcccb510425bd82c (patch)
treee60179e48010b0a389f87687e934f71ead92b27f /packages/frontend/src/components/MkNotificationSettingWindow.vue
parentMerge pull request #11898 from misskey-dev/develop (diff)
parentfix (diff)
downloadmisskey-7adc8fcaf5e7a57edfd2c197fcccb510425bd82c.tar.gz
misskey-7adc8fcaf5e7a57edfd2c197fcccb510425bd82c.tar.bz2
misskey-7adc8fcaf5e7a57edfd2c197fcccb510425bd82c.zip
Merge pull request #11920 from misskey-dev/develop
Release: 2023.9.2
Diffstat (limited to 'packages/frontend/src/components/MkNotificationSettingWindow.vue')
-rw-r--r--packages/frontend/src/components/MkNotificationSettingWindow.vue95
1 files changed, 0 insertions, 95 deletions
diff --git a/packages/frontend/src/components/MkNotificationSettingWindow.vue b/packages/frontend/src/components/MkNotificationSettingWindow.vue
deleted file mode 100644
index a25914b214..0000000000
--- a/packages/frontend/src/components/MkNotificationSettingWindow.vue
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--
-SPDX-FileCopyrightText: syuilo and other misskey contributors
-SPDX-License-Identifier: AGPL-3.0-only
--->
-
-<template>
-<MkModalWindow
- ref="dialog"
- :width="400"
- :height="450"
- :withOkButton="true"
- :okButtonDisabled="false"
- @ok="ok()"
- @close="dialog?.close()"
- @closed="emit('closed')"
->
- <template #header>{{ i18n.ts.notificationSetting }}</template>
-
- <MkSpacer :marginMin="20" :marginMax="28">
- <div class="_gaps_m">
- <template v-if="showGlobalToggle">
- <MkSwitch v-model="useGlobalSetting">
- {{ i18n.ts.useGlobalSetting }}
- <template #caption>{{ i18n.ts.useGlobalSettingDesc }}</template>
- </MkSwitch>
- </template>
- <template v-if="!useGlobalSetting">
- <MkInfo>{{ i18n.ts.notificationSettingDesc }}</MkInfo>
- <div class="_buttons">
- <MkButton inline @click="disableAll">{{ i18n.ts.disableAll }}</MkButton>
- <MkButton inline @click="enableAll">{{ i18n.ts.enableAll }}</MkButton>
- </div>
- <MkSwitch v-for="ntype in notificationTypes" :key="ntype" v-model="typesMap[ntype].value">{{ i18n.t(`_notification._types.${ntype}`) }}</MkSwitch>
- </template>
- </div>
- </MkSpacer>
-</MkModalWindow>
-</template>
-
-<script lang="ts" setup>
-import { ref, Ref } from 'vue';
-import MkSwitch from './MkSwitch.vue';
-import MkInfo from './MkInfo.vue';
-import MkButton from './MkButton.vue';
-import MkModalWindow from '@/components/MkModalWindow.vue';
-import { notificationTypes } from '@/const';
-import { i18n } from '@/i18n.js';
-
-type TypesMap = Record<typeof notificationTypes[number], Ref<boolean>>
-
-const emit = defineEmits<{
- (ev: 'done', v: { includingTypes: string[] | null }): void,
- (ev: 'closed'): void,
-}>();
-
-const props = withDefaults(defineProps<{
- includingTypes?: typeof notificationTypes[number][] | null;
- showGlobalToggle?: boolean;
-}>(), {
- includingTypes: () => [],
- showGlobalToggle: true,
-});
-
-let includingTypes = $computed(() => props.includingTypes?.filter(x => notificationTypes.includes(x)) ?? []);
-
-const dialog = $shallowRef<InstanceType<typeof MkModalWindow>>();
-
-const typesMap: TypesMap = notificationTypes.reduce((p, t) => ({ ...p, [t]: ref<boolean>(includingTypes.includes(t)) }), {} as any);
-let useGlobalSetting = $ref((includingTypes === null || includingTypes.length === 0) && props.showGlobalToggle);
-
-function ok() {
- if (useGlobalSetting) {
- emit('done', { includingTypes: null });
- } else {
- emit('done', {
- includingTypes: (Object.keys(typesMap) as typeof notificationTypes[number][])
- .filter(type => typesMap[type].value),
- });
- }
-
- if (dialog) dialog.close();
-}
-
-function disableAll() {
- for (const type of notificationTypes) {
- typesMap[type].value = false;
- }
-}
-
-function enableAll() {
- for (const type of notificationTypes) {
- typesMap[type].value = true;
- }
-}
-</script>