Merge branch 'develop' into no-websocket

This commit is contained in:
syuilo 2025-05-03 10:30:06 +09:00
commit e67955f6a1
7 changed files with 26 additions and 5 deletions

View File

@ -4,7 +4,9 @@
- -
### Client ### Client
- - Feat: マウスでもタイムラインを引っ張って更新できるように
- アクセシビリティ設定からオフにすることもできます
- Enhance: タイムラインのパフォーマンスを向上
### Server ### Server
- Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775`

4
locales/index.d.ts vendored
View File

@ -5721,6 +5721,10 @@ export interface Locale extends ILocale {
* *
*/ */
"enableSyncThemesBetweenDevices": string; "enableSyncThemesBetweenDevices": string;
/**
*
*/
"enablePullToRefresh": string;
/** /**
* *
*/ */

View File

@ -1430,6 +1430,7 @@ _settings:
ifOn: "オンのとき" ifOn: "オンのとき"
ifOff: "オフのとき" ifOff: "オフのとき"
enableSyncThemesBetweenDevices: "デバイス間でインストールしたテーマを同期" enableSyncThemesBetweenDevices: "デバイス間でインストールしたテーマを同期"
enablePullToRefresh: "ひっぱって更新"
realtimeMode_description: "サーバーと接続を確立し、リアルタイムでコンテンツを更新します。通信量とバッテリーの消費が多くなる場合があります。" realtimeMode_description: "サーバーと接続を確立し、リアルタイムでコンテンツを更新します。通信量とバッテリーの消費が多くなる場合があります。"
contentsUpdateFrequency: "コンテンツの取得頻度" contentsUpdateFrequency: "コンテンツの取得頻度"
contentsUpdateFrequency_description: "高いほどリアルタイムにコンテンツが更新されますが、パフォーマンスが低下し、通信量とバッテリーの消費が多くなります。" contentsUpdateFrequency_description: "高いほどリアルタイムにコンテンツが更新されますが、パフォーマンスが低下し、通信量とバッテリーの消費が多くなります。"

View File

@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only
--> -->
<template> <template>
<MkPullToRefresh :refresher="() => reload()"> <component :is="prefer.s.enablePullToRefresh ? MkPullToRefresh : 'div'" :refresher="() => reload()">
<MkLoading v-if="paginator.fetching.value"/> <MkLoading v-if="paginator.fetching.value"/>
<MkError v-else-if="paginator.error.value" @retry="paginator.init()"/> <MkError v-else-if="paginator.error.value" @retry="paginator.init()"/>
@ -38,7 +38,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkLoading v-else/> <MkLoading v-else/>
</button> </button>
</div> </div>
</MkPullToRefresh> </component>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>

View File

@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only
--> -->
<template> <template>
<MkPullToRefresh :refresher="() => reloadTimeline()"> <component :is="prefer.s.enablePullToRefresh ? MkPullToRefresh : 'div'" :refresher="() => reloadTimeline()">
<MkLoading v-if="paginator.fetching.value"/> <MkLoading v-if="paginator.fetching.value"/>
<MkError v-else-if="paginator.error.value" @retry="paginator.init()"/> <MkError v-else-if="paginator.error.value" @retry="paginator.init()"/>
@ -49,7 +49,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkLoading v-else :inline="true"/> <MkLoading v-else :inline="true"/>
</button> </button>
</div> </div>
</MkPullToRefresh> </component>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>

View File

@ -483,6 +483,14 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkPreferenceContainer> </MkPreferenceContainer>
</SearchMarker> </SearchMarker>
<SearchMarker :keywords="['swipe', 'pull', 'refresh']">
<MkPreferenceContainer k="enablePullToRefresh">
<MkSwitch v-model="enablePullToRefresh">
<template #label><SearchLabel>{{ i18n.ts._settings.enablePullToRefresh }}</SearchLabel></template>
</MkSwitch>
</MkPreferenceContainer>
</SearchMarker>
<SearchMarker :keywords="['keep', 'screen', 'display', 'on']"> <SearchMarker :keywords="['keep', 'screen', 'display', 'on']">
<MkPreferenceContainer k="keepScreenOn"> <MkPreferenceContainer k="keepScreenOn">
<MkSwitch v-model="keepScreenOn"> <MkSwitch v-model="keepScreenOn">
@ -813,6 +821,7 @@ const animatedMfm = prefer.model('animatedMfm');
const disableShowingAnimatedImages = prefer.model('disableShowingAnimatedImages'); const disableShowingAnimatedImages = prefer.model('disableShowingAnimatedImages');
const keepScreenOn = prefer.model('keepScreenOn'); const keepScreenOn = prefer.model('keepScreenOn');
const enableHorizontalSwipe = prefer.model('enableHorizontalSwipe'); const enableHorizontalSwipe = prefer.model('enableHorizontalSwipe');
const enablePullToRefresh = prefer.model('enablePullToRefresh');
const useNativeUiForVideoAudioPlayer = prefer.model('useNativeUiForVideoAudioPlayer'); const useNativeUiForVideoAudioPlayer = prefer.model('useNativeUiForVideoAudioPlayer');
const contextMenu = prefer.model('contextMenu'); const contextMenu = prefer.model('contextMenu');
const menuStyle = prefer.model('menuStyle'); const menuStyle = prefer.model('menuStyle');
@ -871,6 +880,8 @@ watch([
fontSize, fontSize,
useSystemFont, useSystemFont,
makeEveryTextElementsSelectable, makeEveryTextElementsSelectable,
enableHorizontalSwipe,
enablePullToRefresh,
], async () => { ], async () => {
await reloadAsk({ reason: i18n.ts.reloadToApplySetting, unison: true }); await reloadAsk({ reason: i18n.ts.reloadToApplySetting, unison: true });
}); });

View File

@ -303,6 +303,9 @@ export const PREF_DEF = {
enableHorizontalSwipe: { enableHorizontalSwipe: {
default: true, default: true,
}, },
enablePullToRefresh: {
default: true,
},
useNativeUiForVideoAudioPlayer: { useNativeUiForVideoAudioPlayer: {
default: false, default: false,
}, },