merge: allow disabling achievement notifications #319 (!412)

View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/412

Approved-by: Marie <marie@kaifa.ch>
Approved-by: Amelia Yukii <amelia.yukii@shourai.de>
This commit is contained in:
Marie 2024-02-13 09:19:22 +00:00
commit 0f1fc41632
2 changed files with 12 additions and 8 deletions

View File

@ -7,10 +7,10 @@ SPDX-License-Identifier: AGPL-3.0-only
<div class="_gaps_m"> <div class="_gaps_m">
<MkSelect v-model="type"> <MkSelect v-model="type">
<option value="all">{{ i18n.ts.all }}</option> <option value="all">{{ i18n.ts.all }}</option>
<option value="following">{{ i18n.ts.following }}</option> <option value="following" v-if="hasSender">{{ i18n.ts.following }}</option>
<option value="follower">{{ i18n.ts.followers }}</option> <option value="follower" v-if="hasSender">{{ i18n.ts.followers }}</option>
<option value="mutualFollow">{{ i18n.ts.mutualFollow }}</option> <option value="mutualFollow" v-if="hasSender">{{ i18n.ts.mutualFollow }}</option>
<option value="list">{{ i18n.ts.userList }}</option> <option value="list" v-if="hasSender">{{ i18n.ts.userList }}</option>
<option value="never">{{ i18n.ts.none }}</option> <option value="never">{{ i18n.ts.none }}</option>
</MkSelect> </MkSelect>
@ -32,10 +32,13 @@ import MkSelect from '@/components/MkSelect.vue';
import MkButton from '@/components/MkButton.vue'; import MkButton from '@/components/MkButton.vue';
import { i18n } from '@/i18n.js'; import { i18n } from '@/i18n.js';
const props = defineProps<{ const props = withDefaults(defineProps<{
value: any; value: any;
userLists: Misskey.entities.UserList[]; userLists: Misskey.entities.UserList[];
}>(); hasSender: boolean;
}>(), {
hasSender: true,
});
const emit = defineEmits<{ const emit = defineEmits<{
(ev: 'update', result: any): void; (ev: 'update', result: any): void;

View File

@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only
}} }}
</template> </template>
<XNotificationConfig :userLists="userLists" :value="$i.notificationRecieveConfig[type] ?? { type: 'all' }" @update="(res) => updateReceiveConfig(type, res)"/> <XNotificationConfig :userLists="userLists" :value="$i.notificationRecieveConfig[type] ?? { type: 'all' }" :hasSender="!(notificationTypesWithoutSender.includes(type))" @update="(res) => updateReceiveConfig(type, res)"/>
</MkFolder> </MkFolder>
</div> </div>
</FormSection> </FormSection>
@ -71,7 +71,8 @@ import { notificationTypes } from '@/const.js';
const $i = signinRequired(); const $i = signinRequired();
const nonConfigurableNotificationTypes = ['note', 'roleAssigned', 'followRequestAccepted', 'achievementEarned']; const nonConfigurableNotificationTypes = ['note', 'roleAssigned', 'followRequestAccepted'];
const notificationTypesWithoutSender = ['achievementEarned'];
const allowButton = shallowRef<InstanceType<typeof MkPushNotificationAllowButton>>(); const allowButton = shallowRef<InstanceType<typeof MkPushNotificationAllowButton>>();
const pushRegistrationInServer = computed(() => allowButton.value?.pushRegistrationInServer); const pushRegistrationInServer = computed(() => allowButton.value?.pushRegistrationInServer);