Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

// Action classes for setting state specific to the session, including:
// - Current view (patient, orders, etc)
// - Current user context
// - Available user contexts
// - User-directed message queue


import { Action } from '@ngrx/store';
import { UserPreferences, UserIdentity, AppData } from '../models/sessionModels';
import { ModalData } from '../models/uiModels';

export enum SessionActionTypes {
SetView = 'Set Page View',
SetPreferences = 'Set user preferences',
AddUIMessage = 'Add a UI message to the popup queue',
RemoveUIMessage = 'Remove a UI message from the popup queue',
AddPendingRequest = 'Add network request to the queue',
RemovePendingRequest = 'Remove network request from the queue',
SetAvailableIdentities = 'Set the user available identities',
SetActiveIdentity = 'Set the user identity currently active',
SetAppInfo = 'Set the application environment information'
}

export class SetView implements Action {
readonly type = SessionActionTypes.SetView;
constructor(public payload: string) {}
}

export class SetPreferences implements Action {
readonly type = SessionActionTypes.SetPreferences;
constructor(public payload: UserPreferences) {}
}

export class AddUIMessage implements Action {
readonly type = SessionActionTypes.AddUIMessage;
constructor(public payload: ModalData) {}
}

export class RemoveUIMessage implements Action {
readonly type = SessionActionTypes.RemoveUIMessage;
constructor(public payload: number) {}
}

export class AddPendingRequest implements Action {
readonly type = SessionActionTypes.AddPendingRequest;
constructor(public payload: string) {}
}

export class RemovePendingRequest implements Action {
readonly type = SessionActionTypes.RemovePendingRequest;
constructor(public payload: string) {}
}

export class SetActiveIdentity implements Action {
readonly type = SessionActionTypes.SetActiveIdentity;
constructor(public payload: UserIdentity) {}
}

export class SetAvailableIdentities implements Action {
readonly type = SessionActionTypes.SetAvailableIdentities;
constructor(public payload: UserIdentity[]) {}
}

export class SetAppInfo implements Action {
readonly type = SessionActionTypes.SetAppInfo;
constructor(public payload: AppData) {}
}

// union type of action classes for reducer's usage
export type SessionActions =
| SetView
| SetPreferences
| AddUIMessage
| RemoveUIMessage
| AddPendingRequest
| RemovePendingRequest
| SetAvailableIdentities
| SetActiveIdentity
| SetAppInfo;