From dc0b68f9953aaa91f83db84a8359e620ea337c28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?marcin=20miko=C5=82ajczak?= Date: Mon, 9 Oct 2023 19:49:45 +0000 Subject: [PATCH] Reducers: Preserve translation if an existing status already has it --- src/reducers/statuses.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/reducers/statuses.ts b/src/reducers/statuses.ts index a77d0a83d..a2f8941ad 100644 --- a/src/reducers/statuses.ts +++ b/src/reducers/statuses.ts @@ -129,6 +129,16 @@ const isQuote = (status: StatusRecord) => { return Boolean(status.pleroma.get('quote_url')); }; +// Preserve translation if an existing status already has it +const fixTranslation = (status: StatusRecord, oldStatus?: StatusRecord): StatusRecord => { + if (oldStatus?.translation && !status.translation) { + return status + .set('translation', oldStatus.translation); + } else { + return status; + } +}; + // Preserve quote if an existing status already has it const fixQuote = (status: StatusRecord, oldStatus?: StatusRecord): StatusRecord => { if (oldStatus && !status.quote && isQuote(status)) { @@ -144,6 +154,7 @@ const fixStatus = (state: State, status: APIEntity, expandSpoilers: boolean): Re const oldStatus = state.get(status.id); return normalizeStatus(status).withMutations(status => { + fixTranslation(status, oldStatus); fixQuote(status, oldStatus); calculateStatus(status, oldStatus, expandSpoilers); minifyStatus(status);