Skip to content

Commit b171204

Browse files
artaommaheclaude
andcommitted
fix: support @ngx-translate/core v18
ngx-translate v18 removed the `TranslateModule` NgModule. The library's 9 feature modules imported it solely to make the `translate` pipe and directive available in their templates, which breaks consumers on v18 with "No matching export ... for import 'TranslateModule'". Replace `TranslateModule` with the standalone `TranslatePipe` and `TranslateDirective` in each module's `imports`. These have been standalone since @ngx-translate/core v15, so the change is backward compatible with v17. No `TranslateService` usage changes are needed — the library already uses the v18-era `getFallbackLang()` / `setFallbackLang()` API. Widen the peer dependency to `^17.0.0 || ^18.0.0`. Closes #735 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent a406746 commit b171204

10 files changed

Lines changed: 33 additions & 19 deletions

File tree

projects/stream-chat-angular/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^21.0.0-rc.2",
2222
"@angular/forms": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^21.0.0-rc.2",
2323
"@breezystack/lamejs": "^1.2.7",
24-
"@ngx-translate/core": "^17.0.0",
24+
"@ngx-translate/core": "^17.0.0 || ^18.0.0",
2525
"rxjs": "^7.4.0",
2626
"stream-chat": "^9.20.0"
2727
},

projects/stream-chat-angular/src/lib/notification-list/stream-notification.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
22
import { NotificationListComponent } from './notification-list.component';
33
import { NotificationComponent } from '../notification/notification.component';
44
import { CommonModule } from '@angular/common';
5-
import { TranslateModule } from '@ngx-translate/core';
5+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
66

77
@NgModule({
88
declarations: [NotificationComponent, NotificationListComponent],
9-
imports: [CommonModule, TranslateModule],
9+
imports: [CommonModule, TranslateDirective, TranslatePipe],
1010
exports: [NotificationComponent, NotificationListComponent],
1111
})
1212
export class StreamNotificationModule {}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { NgModule } from '@angular/core';
22
import { PaginatedListComponent } from './paginated-list.component';
33
import { CommonModule } from '@angular/common';
4-
import { TranslateModule } from '@ngx-translate/core';
4+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
55
import { IconModule } from '../icon/icon.module';
66

77
@NgModule({
88
declarations: [PaginatedListComponent],
9-
imports: [CommonModule, TranslateModule, IconModule],
9+
imports: [CommonModule, TranslateDirective, TranslatePipe, IconModule],
1010
exports: [PaginatedListComponent],
1111
})
1212
export class StreamPaginatedListModule {}

projects/stream-chat-angular/src/lib/polls/stream-polls.module.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { CommonModule } from '@angular/common';
33
import { PollComposerComponent } from './poll-composer/poll-composer.component';
44
import { PollComponent } from './poll/poll.component';
55
import { PollHeaderComponent } from './poll-header/poll-header.component';
6-
import { TranslateModule } from '@ngx-translate/core';
6+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
77
import { PollOptionsListComponent } from './poll-options-list/poll-options-list.component';
88
import { PollOptionSelectorComponent } from './poll-option-selector/poll-option-selector.component';
99
import { StreamAvatarModule } from '../stream-avatar.module';
@@ -38,7 +38,8 @@ import { PollPreviewComponent } from './poll-preview/poll-preview.component';
3838
],
3939
imports: [
4040
CommonModule,
41-
TranslateModule,
41+
TranslateDirective,
42+
TranslatePipe,
4243
StreamAvatarModule,
4344
StreamModalModule,
4445
StreamNotificationModule,

projects/stream-chat-angular/src/lib/stream-autocomplete-textarea.module.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
import { NgModule } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33
import { AutocompleteTextareaComponent } from './message-input/autocomplete-textarea/autocomplete-textarea.component';
4-
import { TranslateModule } from '@ngx-translate/core';
4+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
55
import { MentionModule } from 'angular-mentions';
66
import { StreamAvatarModule } from './stream-avatar.module';
77
import { textareaInjectionToken } from './injection-tokens';
88

99
@NgModule({
1010
declarations: [AutocompleteTextareaComponent],
11-
imports: [CommonModule, TranslateModule, MentionModule, StreamAvatarModule],
11+
imports: [
12+
CommonModule,
13+
TranslateDirective,
14+
TranslatePipe,
15+
MentionModule,
16+
StreamAvatarModule,
17+
],
1218
exports: [AutocompleteTextareaComponent],
1319
providers: [
1420
{
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { NgModule } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33
import { AvatarComponent } from './avatar/avatar.component';
4-
import { TranslateModule } from '@ngx-translate/core';
4+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
55
import { AvatarPlaceholderComponent } from './avatar-placeholder/avatar-placeholder.component';
66

77
@NgModule({
88
declarations: [AvatarComponent, AvatarPlaceholderComponent],
9-
imports: [CommonModule, TranslateModule],
9+
imports: [CommonModule, TranslateDirective, TranslatePipe],
1010
exports: [AvatarComponent, AvatarPlaceholderComponent],
1111
})
1212
export class StreamAvatarModule {}

projects/stream-chat-angular/src/lib/stream-chat.module.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { StreamAvatarModule } from './stream-avatar.module';
1818
import { ThreadComponent } from './thread/thread.component';
1919
import { MessageBouncePromptComponent } from './message-bounce-prompt/message-bounce-prompt.component';
2020
import { NgxFloatUiModule } from 'ngx-float-ui';
21-
import { TranslateModule } from '@ngx-translate/core';
21+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
2222
import { MessageReactionsSelectorComponent } from './message-reactions-selector/message-reactions-selector.component';
2323
import { UserListComponent } from './user-list/user-list.component';
2424
import { VoiceRecordingModule } from './voice-recording/voice-recording.module';
@@ -55,7 +55,8 @@ import { StreamPaginatedListModule } from './paginated-list/stream-paginated-lis
5555
CommonModule,
5656
NgxFloatUiModule,
5757
StreamAvatarModule,
58-
TranslateModule,
58+
TranslateDirective,
59+
TranslatePipe,
5960
VoiceRecordingModule,
6061
IconModule,
6162
StreamModalModule,

projects/stream-chat-angular/src/lib/stream-textarea.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { NgModule } from '@angular/core';
22
import { CommonModule } from '@angular/common';
3-
import { TranslateModule } from '@ngx-translate/core';
3+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
44
import { TextareaComponent } from './message-input/textarea/textarea.component';
55
import { textareaInjectionToken } from './injection-tokens';
66

77
@NgModule({
88
declarations: [TextareaComponent],
9-
imports: [CommonModule, TranslateModule],
9+
imports: [CommonModule, TranslateDirective, TranslatePipe],
1010
exports: [TextareaComponent],
1111
providers: [
1212
{

projects/stream-chat-angular/src/lib/voice-recorder/voice-recorder.module.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,21 @@ import { CommonModule } from '@angular/common';
33
import { VoiceRecorderComponent } from './voice-recorder.component';
44
import { VoiceRecordingModule } from '../voice-recording/voice-recording.module';
55
import { IconModule } from '../icon/icon.module';
6-
import { TranslateModule } from '@ngx-translate/core';
6+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
77
import { AudioRecorderService } from './audio-recorder.service';
88
import { TranscoderService } from './transcoder.service';
99
import { AmplitudeRecorderService } from './amplitude-recorder.service';
1010
import { VoiceRecorderWavebarComponent } from './voice-recorder-wavebar/voice-recorder-wavebar.component';
1111

1212
@NgModule({
1313
declarations: [VoiceRecorderComponent, VoiceRecorderWavebarComponent],
14-
imports: [CommonModule, VoiceRecordingModule, IconModule, TranslateModule],
14+
imports: [
15+
CommonModule,
16+
VoiceRecordingModule,
17+
IconModule,
18+
TranslateDirective,
19+
TranslatePipe,
20+
],
1521
exports: [VoiceRecorderComponent, VoiceRecorderWavebarComponent],
1622
providers: [
1723
AudioRecorderService,

projects/stream-chat-angular/src/lib/voice-recording/voice-recording.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
33
import { VoiceRecordingComponent } from './voice-recording.component';
44
import { VoiceRecordingWavebarComponent } from './voice-recording-wavebar/voice-recording-wavebar.component';
55
import { IconModule } from '../icon/icon.module';
6-
import { TranslateModule } from '@ngx-translate/core';
6+
import { TranslateDirective, TranslatePipe } from '@ngx-translate/core';
77

88
@NgModule({
99
declarations: [VoiceRecordingComponent, VoiceRecordingWavebarComponent],
10-
imports: [CommonModule, IconModule, TranslateModule],
10+
imports: [CommonModule, IconModule, TranslateDirective, TranslatePipe],
1111
exports: [VoiceRecordingComponent, VoiceRecordingWavebarComponent],
1212
})
1313
export class VoiceRecordingModule {}

0 commit comments

Comments
 (0)