enhance(frontend): 古いアンテナ・通知が削除されていくことを明記
This commit is contained in:
parent
2f4e2a7cca
commit
da502b6bb1
|
@ -5254,6 +5254,14 @@ export interface Locale extends ILocale {
|
|||
* このサーバーは連合が無効化されています。他のサーバーのユーザーとやり取りすることはできません。
|
||||
*/
|
||||
"federationDisabled": string;
|
||||
/**
|
||||
* 古い通知は自動的に削除されます。{here}から手動でリセットすることもできます。
|
||||
*/
|
||||
"oldNotificationsWillBeDeleted": ParameterizedString<"here">;
|
||||
/**
|
||||
* こちら
|
||||
*/
|
||||
"oldNotificationsWillBeDeletedPlaceholderHere": string;
|
||||
"_accountSettings": {
|
||||
/**
|
||||
* コンテンツの表示にログインを必須にする
|
||||
|
@ -5766,6 +5774,10 @@ export interface Locale extends ILocale {
|
|||
* グローバルタイムラインでは、接続している他のすべてのサーバーからの投稿を見られます。
|
||||
*/
|
||||
"global": string;
|
||||
/**
|
||||
* アンテナに保存されている投稿は古いものから削除されていきます。必要に応じてクリップなどに移動させてください。
|
||||
*/
|
||||
"antenna": string;
|
||||
};
|
||||
"_serverRules": {
|
||||
/**
|
||||
|
|
|
@ -1309,6 +1309,8 @@ availableRoles: "利用可能なロール"
|
|||
acknowledgeNotesAndEnable: "注意事項を理解した上でオンにします。"
|
||||
federationSpecified: "このサーバーはホワイトリスト連合で運用されています。管理者が指定したサーバー以外とやり取りすることはできません。"
|
||||
federationDisabled: "このサーバーは連合が無効化されています。他のサーバーのユーザーとやり取りすることはできません。"
|
||||
oldNotificationsWillBeDeleted: "古い通知は自動的に削除されます。{here}から手動でリセットすることもできます。"
|
||||
oldNotificationsWillBeDeletedPlaceholderHere: "こちら"
|
||||
|
||||
_accountSettings:
|
||||
requireSigninToViewContents: "コンテンツの表示にログインを必須にする"
|
||||
|
@ -1456,6 +1458,7 @@ _timelineDescription:
|
|||
local: "ローカルタイムラインでは、このサーバーにいるユーザー全員の投稿を見られます。"
|
||||
social: "ソーシャルタイムラインには、ホームタイムラインとローカルタイムラインの投稿が両方表示されます。"
|
||||
global: "グローバルタイムラインでは、接続している他のすべてのサーバーからの投稿を見られます。"
|
||||
antenna: "アンテナに保存されている投稿は古いものから削除されていきます。必要に応じてクリップなどに移動させてください。"
|
||||
|
||||
_serverRules:
|
||||
description: "新規登録前に表示する、サーバーの簡潔なルールを設定します。内容は利用規約の要約とすることを推奨します。"
|
||||
|
|
|
@ -38,7 +38,7 @@ import MkPullToRefresh from '@/components/MkPullToRefresh.vue';
|
|||
import * as Misskey from 'misskey-js';
|
||||
|
||||
const props = defineProps<{
|
||||
excludeTypes?: typeof notificationTypes[number][];
|
||||
excludeTypes?: typeof notificationTypes[number][] | null;
|
||||
}>();
|
||||
|
||||
const pagingComponent = shallowRef<InstanceType<typeof MkPagination>>();
|
||||
|
|
|
@ -8,6 +8,9 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
|
||||
<MkSpacer :contentMax="800">
|
||||
<div ref="rootEl">
|
||||
<MkInfo v-if="!defaultStore.reactiveState.timelineTutorials.value.antenna" style="margin-bottom: var(--MI-margin);" closable @close="closeTutorial()">
|
||||
{{ i18n.ts._timelineDescription.antenna }}
|
||||
</MkInfo>
|
||||
<div v-if="queue > 0" :class="$style.new"><button class="_buttonPrimary" :class="$style.newButton" @click="top()">{{ i18n.ts.newNoteRecived }}</button></div>
|
||||
<div :class="$style.tl">
|
||||
<MkTimeline
|
||||
|
@ -27,11 +30,13 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
import { computed, watch, ref, shallowRef } from 'vue';
|
||||
import * as Misskey from 'misskey-js';
|
||||
import MkTimeline from '@/components/MkTimeline.vue';
|
||||
import MkInfo from '@/components/MkInfo.vue';
|
||||
import { scroll } from '@@/js/scroll.js';
|
||||
import * as os from '@/os.js';
|
||||
import { misskeyApi } from '@/scripts/misskey-api.js';
|
||||
import { definePageMetadata } from '@/scripts/page-metadata.js';
|
||||
import { i18n } from '@/i18n.js';
|
||||
import { defaultStore } from '@/store.js';
|
||||
import { useRouter } from '@/router/supplier.js';
|
||||
|
||||
const router = useRouter();
|
||||
|
@ -45,6 +50,13 @@ const queue = ref(0);
|
|||
const rootEl = shallowRef<HTMLElement>();
|
||||
const tlEl = shallowRef<InstanceType<typeof MkTimeline>>();
|
||||
|
||||
function closeTutorial() {
|
||||
defaultStore.set('timelineTutorials', {
|
||||
...defaultStore.state.timelineTutorials,
|
||||
antenna: false,
|
||||
});
|
||||
}
|
||||
|
||||
function queueUpdated(q) {
|
||||
queue.value = q;
|
||||
}
|
||||
|
|
|
@ -9,6 +9,14 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<MkSpacer :contentMax="800">
|
||||
<MkHorizontalSwipe v-model:tab="tab" :tabs="headerTabs">
|
||||
<div v-if="tab === 'all'" key="all">
|
||||
<MkInfo v-if="!defaultStore.reactiveState.notificationTutorial.value" style="margin-bottom: var(--MI-margin);" closable @close="closeTutorial()">
|
||||
<I18n :src="i18n.ts.oldNotificationsWillBeDeleted" tag="span">
|
||||
<template #here>
|
||||
<MkA class="_link" to="/settings/notifications">{{ i18n.ts.oldNotificationsWillBeDeletedPlaceholderHere }}</MkA>
|
||||
</template>
|
||||
</I18n>
|
||||
</MkInfo>
|
||||
|
||||
<XNotifications :class="$style.notifications" :excludeTypes="excludeTypes"/>
|
||||
</div>
|
||||
<div v-else-if="tab === 'mentions'" key="mention">
|
||||
|
@ -25,17 +33,24 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<script lang="ts" setup>
|
||||
import { computed, ref } from 'vue';
|
||||
import XNotifications from '@/components/MkNotifications.vue';
|
||||
import MkInfo from '@/components/MkInfo.vue';
|
||||
import MkNotes from '@/components/MkNotes.vue';
|
||||
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
|
||||
import * as os from '@/os.js';
|
||||
import { i18n } from '@/i18n.js';
|
||||
import { defaultStore } from '@/store.js';
|
||||
import { definePageMetadata } from '@/scripts/page-metadata.js';
|
||||
import { notificationTypes } from '@@/js/const.js';
|
||||
import I18n from '@/components/global/I18n.vue';
|
||||
|
||||
const tab = ref('all');
|
||||
const includeTypes = ref<string[] | null>(null);
|
||||
const excludeTypes = computed(() => includeTypes.value ? notificationTypes.filter(t => !includeTypes.value.includes(t)) : null);
|
||||
|
||||
function closeTutorial() {
|
||||
defaultStore.set('notificationTutorial', false);
|
||||
}
|
||||
|
||||
const mentionsPagination = {
|
||||
endpoint: 'notes/mentions' as const,
|
||||
limit: 10,
|
||||
|
|
|
@ -78,12 +78,17 @@ export const defaultStore = markRaw(new Storage('base', {
|
|||
local: false,
|
||||
social: false,
|
||||
global: false,
|
||||
antenna: false,
|
||||
},
|
||||
},
|
||||
abusesTutorial: {
|
||||
where: 'account',
|
||||
default: false,
|
||||
},
|
||||
notificationTutorial: {
|
||||
where: 'account',
|
||||
default: false,
|
||||
},
|
||||
keepCw: {
|
||||
where: 'account',
|
||||
default: true,
|
||||
|
|
Loading…
Reference in New Issue