Skip to content
Snippets Groups Projects
Unverified Commit 094f3ba0 authored by Guilherme Gazzo's avatar Guilherme Gazzo Committed by GitHub
Browse files

regression: Apps translations not working randomly (#29659)

parent 361864a7
No related branches found
No related tags found
No related merge requests found
......@@ -3,7 +3,6 @@ import type { IUIActionButton } from '@rocket.chat/apps-engine/definition/ui';
import { Utilities } from '../../../../ee/lib/misc/Utilities';
import { MessageAction } from '../../../ui-utils/client';
import { messageArgs } from '../../../../client/lib/utils/messageArgs';
import { t } from '../../../utils/lib/i18n';
import { triggerActionButtonAction } from '../ActionManager';
import { applyButtonFilters } from './lib/applyButtonFilters';
......@@ -14,7 +13,7 @@ export const onAdded = (button: IUIActionButton): void =>
MessageAction.addButton({
id: getIdForActionButton(button),
icon: '' as any,
label: t(Utilities.getI18nKeyForApp(button.labelI18n, button.appId)) as any,
label: Utilities.getI18nKeyForApp(button.labelI18n, button.appId),
context: button.when?.messageActionContext || ['message', 'message-mobile', 'threads', 'starred'],
condition({ room }) {
return applyButtonFilters(button, room);
......
import type { IUIActionButton } from '@rocket.chat/apps-engine/definition/ui';
import type { TranslationKey } from '@rocket.chat/ui-contexts';
import { ChatRoom } from '../../../models/client';
import { messageBox } from '../../../ui-utils/client';
import { applyButtonFilters } from './lib/applyButtonFilters';
import { triggerActionButtonAction } from '../ActionManager';
import { t } from '../../../utils/lib/i18n';
import { Utilities } from '../../../../ee/lib/misc/Utilities';
import { RoomManager } from '../../../../client/lib/RoomManager';
import { asReactiveSource } from '../../../../client/lib/tracker';
......@@ -14,7 +12,7 @@ const getIdForActionButton = ({ appId, actionId }: IUIActionButton): string => `
export const onAdded = (button: IUIActionButton): void =>
// eslint-disable-next-line no-void
void messageBox.actions.add('Apps', t(Utilities.getI18nKeyForApp(button.labelI18n, button.appId)) as TranslationKey, {
void messageBox.actions.add('Apps', Utilities.getI18nKeyForApp(button.labelI18n, button.appId), {
id: getIdForActionButton(button),
// icon: button.icon || '',
condition() {
......
......@@ -2,7 +2,6 @@ import type { IUIActionButton } from '@rocket.chat/apps-engine/definition/ui';
import { addAction, deleteAction } from '../../../../client/views/room/lib/Toolbox';
import { Utilities } from '../../../../ee/lib/misc/Utilities';
import { t } from '../../../utils/lib/i18n';
import { triggerActionButtonAction } from '../ActionManager';
import { applyButtonFilters } from './lib/applyButtonFilters';
......@@ -16,7 +15,7 @@ export const onAdded = (button: IUIActionButton): void =>
id: button.actionId,
icon: undefined, // Apps won't provide icons for now
order: 300, // Make sure the button only shows up inside the room toolbox
title: t(Utilities.getI18nKeyForApp(button.labelI18n, button.appId)) as any,
title: Utilities.getI18nKeyForApp(button.labelI18n, button.appId),
// Filters were applied in the applyButtonFilters function
// if the code made it this far, the button should be shown
groups: ['group', 'channel', 'live', 'team', 'direct', 'direct_multiple'],
......
......@@ -11,7 +11,9 @@ import type { ReactElement, ReactNode } from 'react';
import React, { useEffect, useMemo } from 'react';
import { I18nextProvider, initReactI18next, useTranslation } from 'react-i18next';
import { CachedCollectionManager } from '../../app/ui-cached-collection/client';
import { i18n, addSprinfToI18n } from '../../app/utils/lib/i18n';
import { AppClientOrchestratorInstance } from '../../ee/client/apps/orchestrator';
import { applyCustomTranslations } from '../lib/utils/applyCustomTranslations';
import { filterLanguage } from '../lib/utils/filterLanguage';
import { isRTLScriptLanguage } from '../lib/utils/isRTLScriptLanguage';
......@@ -218,6 +220,15 @@ const TranslationProvider = ({ children }: TranslationProviderProps): ReactEleme
});
}, [language, loadLocale, availableLanguages]);
useEffect(() => {
const cb = () => {
AppClientOrchestratorInstance.getAppClientManager().initialize();
AppClientOrchestratorInstance.load();
};
CachedCollectionManager.onLogin(cb);
return () => CachedCollectionManager.off('login', cb);
}, []);
return (
<I18nextProvider i18n={i18nextInstance}>
<TranslationProviderInner children={children} availableLanguages={availableLanguages} />
......
......@@ -5,10 +5,8 @@ import type { IPermission } from '@rocket.chat/apps-engine/definition/permission
import type { ISetting } from '@rocket.chat/apps-engine/definition/settings';
import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage/IAppStorageItem';
import type { AppScreenshot, AppRequestFilter, Serialized, AppRequestsStats, PaginatedAppRequests } from '@rocket.chat/core-typings';
import { Meteor } from 'meteor/meteor';
import { hasAtLeastOnePermission } from '../../../app/authorization/client';
import { CachedCollectionManager } from '../../../app/ui-cached-collection/client';
import { sdk } from '../../../app/utils/client/lib/SDKClient';
import { dispatchToastMessage } from '../../../client/lib/toast';
import type { App } from '../../../client/views/marketplace/types';
......@@ -263,10 +261,3 @@ class AppClientOrchestrator {
}
export const AppClientOrchestratorInstance = new AppClientOrchestrator();
Meteor.startup(() => {
CachedCollectionManager.onLogin(() => {
AppClientOrchestratorInstance.getAppClientManager().initialize();
AppClientOrchestratorInstance.load();
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment