get rid of singleton usage in view resolver (#13990)
addressing - https://github.com/twentyhq/twenty/pull/13895#pullrequestreview-3133235956 will be addressing performance issue in another follow-up -- need to get the strategy straight
This commit is contained in:
@@ -232,7 +232,7 @@ msgstr "タイムラインに表示される集計/フィルタされたイベ
|
||||
#: src/engine/workspace-manager/standard-objects-prefill-data/views/custom-all.view.ts
|
||||
#: src/engine/workspace-manager/standard-objects-prefill-data/views/companies-all.view.ts
|
||||
msgid "All {objectLabelPlural}"
|
||||
msgstr "{objectLabelPlural}すべて"
|
||||
msgstr ""
|
||||
|
||||
#. js-lingui-id: hehnjM
|
||||
#: src/modules/opportunity/standard-objects/opportunity.workspace-entity.ts
|
||||
|
||||
@@ -9,9 +9,9 @@ import {
|
||||
Resolver,
|
||||
} from '@nestjs/graphql';
|
||||
|
||||
import { i18n } from '@lingui/core';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
import { I18nService } from 'src/engine/core-modules/i18n/i18n.service';
|
||||
import { type I18nContext } from 'src/engine/core-modules/i18n/types/i18n-context.type';
|
||||
import { generateMessageId } from 'src/engine/core-modules/i18n/utils/generateMessageId';
|
||||
import { CreateViewInput } from 'src/engine/core-modules/view/dtos/inputs/create-view.input';
|
||||
@@ -28,7 +28,10 @@ import { resolveObjectMetadataStandardOverride } from 'src/engine/metadata-modul
|
||||
@UseFilters(ViewGraphqlApiExceptionFilter)
|
||||
@UseGuards(WorkspaceAuthGuard)
|
||||
export class ViewResolver {
|
||||
constructor(private readonly viewService: ViewService) {}
|
||||
constructor(
|
||||
private readonly viewService: ViewService,
|
||||
private readonly i18nService: I18nService,
|
||||
) {}
|
||||
|
||||
@ResolveField(() => String)
|
||||
async name(
|
||||
@@ -57,8 +60,12 @@ export class ViewResolver {
|
||||
);
|
||||
|
||||
const messageId = generateMessageId(view.name);
|
||||
const translatedTemplate = i18n._(messageId, {
|
||||
objectLabelPlural: translatedObjectLabel,
|
||||
const translatedTemplate = this.i18nService.translateMessage({
|
||||
messageId,
|
||||
values: {
|
||||
objectLabelPlural: translatedObjectLabel,
|
||||
},
|
||||
locale: context.req.locale,
|
||||
});
|
||||
|
||||
if (translatedTemplate !== messageId) {
|
||||
@@ -74,7 +81,10 @@ export class ViewResolver {
|
||||
}
|
||||
|
||||
const messageId = generateMessageId(view.name);
|
||||
const translatedMessage = i18n._(messageId);
|
||||
const translatedMessage = this.i18nService.translateMessage({
|
||||
messageId,
|
||||
locale: context.req.locale,
|
||||
});
|
||||
|
||||
return translatedMessage !== messageId ? translatedMessage : view.name;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
|
||||
import { AuthModule } from 'src/engine/core-modules/auth/auth.module';
|
||||
import { I18nModule } from 'src/engine/core-modules/i18n/i18n.module';
|
||||
import { ViewFieldController } from 'src/engine/core-modules/view/controllers/view-field.controller';
|
||||
import { ViewFilterGroupController } from 'src/engine/core-modules/view/controllers/view-filter-group.controller';
|
||||
import { ViewFilterController } from 'src/engine/core-modules/view/controllers/view-filter.controller';
|
||||
@@ -36,6 +37,7 @@ import { WorkspaceCacheStorageModule } from 'src/engine/workspace-cache-storage/
|
||||
'core',
|
||||
),
|
||||
AuthModule,
|
||||
I18nModule,
|
||||
WorkspaceCacheStorageModule,
|
||||
WorkspaceMetadataCacheModule,
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user