Skip to content

Commit

Permalink
build provideGlobalState for ngrx to standalone migration
Browse files Browse the repository at this point in the history
  • Loading branch information
Pop John committed Jul 12, 2024
1 parent e39a572 commit 0d61eea
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 34 deletions.
2 changes: 2 additions & 0 deletions frontend/src/app/app.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ import { routes } from './app.routes';
import { CoreModule } from './modules/core/core.module';
import { provideCustomMaterial } from './modules/shared/material.providers';
import { metaReducers } from './state/app.metareducers';
import { provideGlobalState } from './state/global-state.providers';

export const appConfig: ApplicationConfig = {
providers: [
provideRouter(routes),
provideCustomMaterial(),
provideGlobalState(),
importProvidersFrom(
CoreModule,
StoreModule.forRoot({}, { metaReducers }),
Expand Down
11 changes: 10 additions & 1 deletion frontend/src/app/app.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,17 @@

// SPDX-License-Identifier: Apache-2.0

import { importProvidersFrom } from '@angular/core';
import { Routes } from '@angular/router';
import { EffectsModule } from '@ngrx/effects';
import { StoreModule } from '@ngrx/store';
import { AuthGuard } from './modules/core/guards/auth.guard';
import { ModeSelectGuard } from './modules/core/guards/mode-select.guard';
import { RedirectIfAuthenticatedGuard } from './modules/core/guards/redirect-if-authenticated.guard';
import { RoutesList } from './modules/core/models/enums/routes-list.enum';
import { MsMainLayoutComponent } from './modules/shared/components/ms-main-layout/ms-main-layout.component';
import { runRecordsReducers } from './state/run-records';
import { RecordsEffects } from './state/run-records/records';

export const routes: Routes = [
{
Expand Down Expand Up @@ -77,7 +82,11 @@ export const routes: Routes = [
{
path: RoutesList.ALGORITHM_COMPARISON.ROOT,
loadChildren: () =>
import('./modules/algorithm-comparison/algorithm-comparison.module').then((m) => m.AlgorithmComparisonModule)
import('./modules/algorithm-comparison/algorithm-comparison.module').then((m) => m.AlgorithmComparisonModule),
providers: [
importProvidersFrom(StoreModule.forFeature('runRecords', runRecordsReducers)),
importProvidersFrom(EffectsModule.forFeature([RecordsEffects]))
]
},
{
path: RoutesList.MULTI_MODAL.ROOT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,7 @@

import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { EffectsModule } from '@ngrx/effects';
import { StoreModule } from '@ngrx/store';
import { NgxColorsModule } from 'ngx-colors';
import { runRecordsReducers } from '../../state/run-records';
import { RecordsEffects } from '../../state/run-records/records';
import { DrawerService, MsDrawerComponent } from '../shared/components/ms-drawer';
import { MsEmptyStateComponent } from '../shared/components/ms-empty-state/ms-empty-state.component';
import { MsLineChartComponent } from '../shared/components/ms-line-chart/ms-line-chart.component';
Expand Down Expand Up @@ -69,8 +65,6 @@ import { RecordsFacadeService } from './services/records-facade.service';
AlgorithmComparisonRoutingModule,
MsDrawerComponent,
NgxColorsModule,
StoreModule.forFeature('runRecords', runRecordsReducers),
EffectsModule.forFeature([RecordsEffects]),
MsLineChartComponent,
ReadableDurationPipe,
ParametersLabelPipe,
Expand Down
29 changes: 2 additions & 27 deletions frontend/src/app/modules/core/core.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,12 @@ import { NgModule, Optional, SkipSelf } from '@angular/core';
import { MatIconRegistry } from '@angular/material/icon';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { EffectsModule } from '@ngrx/effects';
import { StoreModule } from '@ngrx/store';
import { MAT_SELECTSEARCH_DEFAULT_OPTIONS, MatSelectSearchOptions } from 'ngx-mat-select-search';
import { CLIENT } from '../../app.tokens';
import { ClientBackend } from '../../services/client/client-backend';
import { AppErrorHandlingInterceptor } from '../../services/interceptor/app-error-handling-interceptor';
import { AppLoadingInterceptor } from '../../services/interceptor/app-loading-interceptor';
import { coreReducers } from '../../state/core';
import { AuthEffects } from '../../state/core/auth';
import { ChartsEffects } from '../../state/core/charts';
import { FileEffects } from '../../state/core/file';
import { ModelsEffects } from '../../state/core/models/models.effects';
import { ParametersEffects } from '../../state/core/parameters';
import { ScriptActions, ScriptEffects } from '../../state/core/script';
import { StatisticsEffects } from '../../state/core/statistics';
import { TerminalEffects } from '../../state/core/terminal';
import { ScriptActions } from '../../state/core/script';
import { AuthGuard } from './guards/auth.guard';
import { ModeSelectGuard } from './guards/mode-select.guard';
import { RedirectIfAuthenticatedGuard } from './guards/redirect-if-authenticated.guard';
Expand All @@ -56,22 +46,7 @@ import { ModelsFacadeService } from './services/models-facade.service';
import { PageRunningScriptSpiningIndicatorService } from './services/page-running-script-spinning-indicator.service';

@NgModule({
imports: [
CommonModule,
BrowserModule,
BrowserAnimationsModule,
StoreModule.forFeature('core', coreReducers),
EffectsModule.forFeature([
AuthEffects,
ScriptEffects,
FileEffects,
ChartsEffects,
ParametersEffects,
TerminalEffects,
StatisticsEffects,
ModelsEffects
])
],
imports: [CommonModule, BrowserModule, BrowserAnimationsModule],
providers: [
WebsocketService,
AuthGuard,
Expand Down
30 changes: 30 additions & 0 deletions frontend/src/app/state/global-state.providers.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { EnvironmentProviders, importProvidersFrom } from '@angular/core';
import { EffectsModule } from '@ngrx/effects';
import { StoreModule } from '@ngrx/store';
import { coreReducers } from './core';
import { AuthEffects } from './core/auth';
import { ChartsEffects } from './core/charts';
import { FileEffects } from './core/file';
import { ModelsEffects } from './core/models/models.effects';
import { ParametersEffects } from './core/parameters';
import { ScriptEffects } from './core/script';
import { StatisticsEffects } from './core/statistics';
import { TerminalEffects } from './core/terminal';

export function provideGlobalState(): EnvironmentProviders[] {
return [
importProvidersFrom(StoreModule.forFeature('core', coreReducers)),
importProvidersFrom(
EffectsModule.forFeature([
AuthEffects,
ScriptEffects,
FileEffects,
ChartsEffects,
ParametersEffects,
TerminalEffects,
StatisticsEffects,
ModelsEffects
])
)
];
}

0 comments on commit 0d61eea

Please sign in to comment.