[MM-67563] Change websocket format for translation update events (#9515) (#9531)

(cherry picked from commit d0cc38d549)

Co-authored-by: Daniel Espino García <larkox@gmail.com>
This commit is contained in:
Mattermost Build 2026-02-18 18:08:27 +02:00 committed by GitHub
parent 26da2839fc
commit 8f9210ec5b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 12 deletions

View file

@ -409,18 +409,18 @@ export async function handlePostAcknowledgementRemoved(serverUrl: string, msg: W
export async function handlePostTranslationUpdatedEvent(serverUrl: string, msg: WebSocketMessage) {
try {
const translationData: PostTranslationUpdateData = msg.data;
const translationObject: PostTranslation['object'] = translationData.translation ? JSON.parse(translationData.translation) : undefined;
const locale = await getCurrentUserLocale(serverUrl);
if (locale !== translationData.language) {
const myLanguageTranslation = translationData.translations[locale];
if (!myLanguageTranslation) {
return;
}
if (locale === translationData.src_lang) {
return;
}
await updatePostTranslation(serverUrl, translationData.object_id, translationData.language, {
const translationObject: PostTranslation['object'] = myLanguageTranslation?.translation ? JSON.parse(myLanguageTranslation.translation) : undefined;
await updatePostTranslation(serverUrl, translationData.object_id, locale, {
object: translationObject,
state: translationData.state,
source_lang: translationData.src_lang,
state: myLanguageTranslation.state,
source_lang: myLanguageTranslation.src_lang,
});
} catch (error) {
// Do nothing

View file

@ -23,9 +23,11 @@ type ThreadReadChangedData = {
};
type PostTranslationUpdateData = {
language: string;
object_id: string;
src_lang: string;
state: PostTranslationState;
translation: string; // JSON-encoded PostTranslation['object']
translations: Record<string, {
state: 'ready' | 'skipped' | 'processing' | 'unavailable';
translation: string; // JSON-encoded PostTranslation['object']
translation_type?: string;
src_lang?: string;
}>;
}