import { ApplicationConfig, provideBrowserGlobalErrorListeners, isDevMode } from '@angular/core'; import { provideRouter } from '@angular/router'; import { provideHttpClient } from '@angular/common/http'; import { provideStore } from '@ngrx/store'; import { provideEffects } from '@ngrx/effects'; import { provideStoreDevtools } from '@ngrx/store-devtools'; import { routes } from './app.routes'; import { messagesReducer } from './store/messages/messages.reducer'; import { usersReducer } from './store/users/users.reducer'; import { roomsReducer } from './store/rooms/rooms.reducer'; import { MessagesEffects } from './store/messages/messages.effects'; import { MessagesSyncEffects } from './store/messages/messages-sync.effects'; import { UsersEffects } from './store/users/users.effects'; import { RoomsEffects } from './store/rooms/rooms.effects'; import { RoomMembersSyncEffects } from './store/rooms/room-members-sync.effects'; import { STORE_DEVTOOLS_MAX_AGE } from './core/constants'; /** Root application configuration providing routing, HTTP, NgRx store, and devtools. */ export const appConfig: ApplicationConfig = { providers: [ provideBrowserGlobalErrorListeners(), provideRouter(routes), provideHttpClient(), provideStore({ messages: messagesReducer, users: usersReducer, rooms: roomsReducer }), provideEffects([ MessagesEffects, MessagesSyncEffects, UsersEffects, RoomsEffects, RoomMembersSyncEffects ]), provideStoreDevtools({ maxAge: STORE_DEVTOOLS_MAX_AGE, logOnly: !isDevMode(), autoPause: true, trace: false }) ] };