diff --git a/locales/en-US.yml b/locales/en-US.yml index e9580b9d5..8897cc0e1 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -1053,6 +1053,7 @@ recommendedInstancesDescription: "Recommended servers separated by line breaks t caption: "Auto Caption" splash: "Splash Screen" updateAvailable: "There might be an update available!" +swipeOnMobile: "Allow swiping between pages" swipeOnDesktop: "Allow mobile-style swiping on desktop" logoImageUrl: "Logo image URL" showAdminUpdates: "Indicate a new Calckey version is avaliable (admin only)" diff --git a/packages/client/src/pages/settings/general.vue b/packages/client/src/pages/settings/general.vue index 36a4e2a13..18afb3b9f 100644 --- a/packages/client/src/pages/settings/general.vue +++ b/packages/client/src/pages/settings/general.vue @@ -45,6 +45,9 @@ class="_formBlock" >{{ i18n.ts.useReactionPickerForContextMenu }} + {{ + i18n.ts.swipeOnMobile + }} {{ i18n.ts.swipeOnDesktop }} @@ -339,6 +342,9 @@ const showUpdates = computed(defaultStore.makeGetterSetter("showUpdates")); const swipeOnDesktop = computed( defaultStore.makeGetterSetter("swipeOnDesktop") ); +const swipeOnMobile = computed( + defaultStore.makeGetterSetter("swipeOnMobile") +); const showAdminUpdates = computed( defaultStore.makeGetterSetter("showAdminUpdates") ); @@ -379,6 +385,7 @@ watch( overridedDeviceKind, showAds, showUpdates, + swipeOnMobile, swipeOnDesktop, seperateRenoteQuote, showAdminUpdates, diff --git a/packages/client/src/pages/timeline.vue b/packages/client/src/pages/timeline.vue index 88c41d283..9a496c3c4 100644 --- a/packages/client/src/pages/timeline.vue +++ b/packages/client/src/pages/timeline.vue @@ -45,12 +45,7 @@ :modules="[Virtual]" :space-between="20" :virtual="true" - :allow-touch-move=" - !( - deviceKind === 'desktop' && - !defaultStore.state.swipeOnDesktop - ) - " + :allow-touch-move="defaultStore.state.swipeOnMobile && ( deviceKind !== 'desktop' || defaultStore.state.swipeOnDesktop )" @swiper="setSwiperRef" @slide-change="onSlideChange" > diff --git a/packages/client/src/store.ts b/packages/client/src/store.ts index e7be5135c..044a98356 100644 --- a/packages/client/src/store.ts +++ b/packages/client/src/store.ts @@ -314,6 +314,10 @@ export const defaultStore = markRaw( where: "device", default: false, }, + swipeOnMobile: { + where: "device", + default: true, + }, showAdminUpdates: { where: "account", default: true,