From 067cfacb4496e90a86a115e802ca7c0857322999 Mon Sep 17 00:00:00 2001
From: "jvanboxtel@wisc.edu" <jvanboxtel@wisc.edu>
Date: Mon, 10 Jun 2019 14:04:29 -0500
Subject: [PATCH] Adds populate state action

---
 src/app/dars/store/actions.ts | 10 +++++++++-
 src/app/dars/store/effects.ts | 10 +++++++---
 src/app/dars/store/reducer.ts |  6 +++++-
 3 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/src/app/dars/store/actions.ts b/src/app/dars/store/actions.ts
index 3949662..83aba03 100644
--- a/src/app/dars/store/actions.ts
+++ b/src/app/dars/store/actions.ts
@@ -7,11 +7,14 @@ export enum DarsActionTypes {
   ErrorLoadingMetadata = '[DARS] Error Loading Metadata',
   StartLoadingMetadata = '[DARS] Start Loading Metadata',
   DoneLoadingMetadata = '[DARS] Done Loading Metadata',
-  ErrorLoadingAudit = '[DARS] Error Loading Audit',
   AddAuditMetadata = '[DARS] Add Audit Metadata',
+
+  ErrorLoadingAudit = '[DARS] Error Loading Audit',
   StartLoadingAudit = '[DARS] Start Loading Audit',
   DoneLoadingAudit = '[DARS] Done Loading Audit',
   CloseAudit = '[DARS] Close Audit',
+
+  PopulateDarsState = '[DARS] Done Loading state',
 }
 
 export class ErrorLoadingMetadata implements Action {
@@ -43,6 +46,11 @@ export class AddAuditMetadata implements Action {
   ) {}
 }
 
+export class PopulateDarsState implements Action {
+  public readonly type = DarsActionTypes.PopulateDarsState;
+  constructor(public payload: Partial<DARSState>) {}
+}
+
 export class StartLoadingAudit implements Action {
   public readonly type = DarsActionTypes.StartLoadingAudit;
   constructor(public payload: AuditMetadata) {}
diff --git a/src/app/dars/store/effects.ts b/src/app/dars/store/effects.ts
index b666170..6e19407 100644
--- a/src/app/dars/store/effects.ts
+++ b/src/app/dars/store/effects.ts
@@ -67,9 +67,13 @@ export class DARSEffects {
         }
       });
 
-      return new darsActions.AddAuditMetadata({
-        programMetadata,
-        whatIfMetadata,
+      return new darsActions.PopulateDarsState({
+        metadata: {
+          status: 'Loaded',
+          programMetadata,
+          whatIfMetadata,
+        },
+        alerts,
       });
     }),
 
diff --git a/src/app/dars/store/reducer.ts b/src/app/dars/store/reducer.ts
index 735159c..57cdf97 100644
--- a/src/app/dars/store/reducer.ts
+++ b/src/app/dars/store/reducer.ts
@@ -1,10 +1,11 @@
 import { DARSState, INITIAL_DARS_STATE } from '@app/dars/store/state';
-import { DarsActionTypes } from './actions';
+import { DarsActionTypes, AddAuditMetadata } from './actions';
 import * as darsActions from './actions';
 
 type SupportedActions =
   | darsActions.ErrorLoadingMetadata
   | darsActions.AddAuditMetadata
+  | darsActions.PopulateDarsState
   | darsActions.StartLoadingAudit
   | darsActions.DoneLoadingAudit
   | darsActions.CloseAudit;
@@ -14,6 +15,9 @@ export function darsReducer(
   action: SupportedActions,
 ): DARSState {
   switch (action.type) {
+    case DarsActionTypes.PopulateDarsState: {
+      return { ...state, ...action.payload };
+    }
     case DarsActionTypes.ErrorLoadingMetadata: {
       return {
         ...state,
-- 
GitLab