diff --git a/packages/frontend/src/pages/settings/general.vue b/packages/frontend/src/pages/settings/general.vue
index 30443fded6..0d1f572816 100644
--- a/packages/frontend/src/pages/settings/general.vue
+++ b/packages/frontend/src/pages/settings/general.vue
@@ -150,6 +150,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.openImageInNewTab }}
{{ i18n.ts.enableInfiniteScroll }}
{{ i18n.ts.keepScreenOn }}
+ {{ i18n.ts.disableWebSocket ?? 'タイムラインのリアルタイム更新を無効にする' }}
{{ i18n.ts.whenServerDisconnected }}
@@ -251,6 +252,7 @@ const notificationPosition = computed(defaultStore.makeGetterSetter('notificatio
const notificationStackAxis = computed(defaultStore.makeGetterSetter('notificationStackAxis'));
const keepScreenOn = computed(defaultStore.makeGetterSetter('keepScreenOn'));
const defaultWithReplies = computed(defaultStore.makeGetterSetter('defaultWithReplies'));
+const disableWebSocket = computed(defaultStore.makeGetterSetter('disableWebSocket'));
watch(lang, () => {
miLocalStorage.setItem('lang', lang.value as string);
@@ -287,6 +289,7 @@ watch([
reactionsDisplaySize,
highlightSensitiveMedia,
keepScreenOn,
+ disableWebSocket,
], async () => {
await reloadAsk();
});
diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts
index 92d01e4caf..b3c6637a19 100644
--- a/packages/frontend/src/store.ts
+++ b/packages/frontend/src/store.ts
@@ -365,6 +365,10 @@ export const defaultStore = markRaw(new Storage('base', {
where: 'account',
default: false,
},
+ disableWebSocket: {
+ where: 'device',
+ default: false,
+ },
}));
// TODO: 他のタブと永続化されたstateを同期