From 3d37b9d8e1cad78fb1f666b3cfb7f28b1fdc1c2d Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 12 Apr 2022 21:18:06 +0300 Subject: unified layout-setting code and made an option to control or disable third column behavior --- src/modules/config.js | 4 ++++ src/modules/interface.js | 24 +++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) (limited to 'src/modules') diff --git a/src/modules/config.js b/src/modules/config.js index 6d2e6ce0..c0d5c3c2 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -46,6 +46,7 @@ export const defaultState = { pauseOnUnfocused: true, stopGifs: true, replyVisibility: 'all', + thirdColumnMode: 'notifications', notificationVisibility: { follows: true, mentions: true, @@ -165,6 +166,9 @@ const config = { case 'interfaceLanguage': messages.setLanguage(this.getters.i18n, value) break + case 'thirdColumnMode': + dispatch('setLayoutWidth', undefined) + break } } } diff --git a/src/modules/interface.js b/src/modules/interface.js index 9df72b88..ed31b6ff 100644 --- a/src/modules/interface.js +++ b/src/modules/interface.js @@ -72,6 +72,9 @@ const interfaceMod = { setLayoutHeight (state, value) { state.layoutHeight = value }, + setLayoutWidth (state, value) { + state.layoutWidth = value + }, setLastTimeline (state, value) { state.lastTimeline = value } @@ -86,9 +89,6 @@ const interfaceMod = { setNotificationPermission ({ commit }, permission) { commit('setNotificationPermission', permission) }, - setLayoutType ({ commit }, value) { - commit('setLayoutType', value) - }, closeSettingsModal ({ commit }) { commit('closeSettingsModal') }, @@ -133,6 +133,24 @@ const interfaceMod = { setLayoutHeight ({ commit }, value) { commit('setLayoutHeight', value) }, + // value is optional, assuming it was cached prior + setLayoutWidth ({ commit, state, rootGetters }, value) { + let width = value + if (value !== undefined) { + commit('setLayoutWidth', value) + } else { + width = state.layoutWidth + } + const mobileLayout = width <= 800 + const normalOrMobile = mobileLayout ? 'mobile' : 'normal' + const { thirdColumnMode } = rootGetters.mergedConfig + if (thirdColumnMode === 'none') { + commit('setLayoutType', normalOrMobile) + } else { + const wideLayout = width >= 1300 + commit('setLayoutType', wideLayout ? 'wide' : normalOrMobile) + } + }, setLastTimeline ({ commit }, value) { commit('setLastTimeline', value) } -- cgit v1.2.3-70-g09d2