From f4a08de9b4a265b1d49dc3188d8a2c93e5ef3f7f Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Wed, 16 Nov 2022 06:58:45 -0800 Subject: [PATCH] fix: fix max number of status characters Fixes #2187 --- src/routes/_static/statuses.js | 2 ++ .../_store/computations/instanceComputations.js | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/routes/_static/statuses.js b/src/routes/_static/statuses.js index 376f66f2..c4662f37 100644 --- a/src/routes/_static/statuses.js +++ b/src/routes/_static/statuses.js @@ -23,3 +23,5 @@ export const POST_PRIVACY_OPTIONS = [ export const LONG_POST_LENGTH = 1024 export const LONG_POST_TEXT = 'intl.longPost' + +export const MAX_STATUS_CHARS = 500 diff --git a/src/routes/_store/computations/instanceComputations.js b/src/routes/_store/computations/instanceComputations.js index 48154c32..1ae9518d 100644 --- a/src/routes/_store/computations/instanceComputations.js +++ b/src/routes/_store/computations/instanceComputations.js @@ -1,5 +1,6 @@ import { DEFAULT_THEME } from '../../_utils/themeEngine.js' import { mark, stop } from '../../_utils/marks.js' +import { MAX_STATUS_CHARS } from '../../_static/statuses.js' function computeForInstance (store, computedKey, key, defaultValue) { store.compute(computedKey, @@ -57,10 +58,18 @@ export function instanceComputations (store) { store.compute( 'maxStatusChars', ['currentInstanceInfo'], - (currentInstanceInfo) => ( - // unofficial api used in glitch-soc and pleroma - (currentInstanceInfo && currentInstanceInfo.max_toot_chars) || 500 - ) + (currentInstanceInfo) => { + if (currentInstanceInfo) { + if (currentInstanceInfo.max_toot_chars) { + // unofficial api used in glitch-soc and pleroma + return currentInstanceInfo.max_toot_chars + } + if (currentInstanceInfo.configuration && currentInstanceInfo.configuration.statuses && currentInstanceInfo.configuration.statuses.max_characters) { + return currentInstanceInfo.configuration.statuses.max_characters + } + } + return MAX_STATUS_CHARS + } ) stop('instanceComputations')