Skip to content
Snippets Groups Projects
user-settings.actions.ts 1.93 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { ApiError } from '@goofy-client/tech-shared';
    
    import { UserProfileResource } from '@goofy-client/user-profile-shared';
    import { ActionCreator, createAction, props } from '@ngrx/store';
    import { TypedAction } from '@ngrx/store/src/models';
    
    import { UserSettings, UserSettingsResource } from '../user-settings.model';
    
    //TODO centralize ActionCreate
    export interface UserSettingsActionCreator<T> extends ActionCreator<string, (props: T) => T & TypedAction<string>> { }
    export interface TypedActionCreator extends ActionCreator<string, () => TypedAction<string>> { }
    
    
    export interface UserProfileAction {
    	currentUser: UserProfileResource
    }
    
    export interface LoadedUserSettingsAction {
    
    export interface SetUserSettingsAction {
    	userSettings: UserSettings
    }
    
    
    export interface ApiErrorAction {
    	apiError: ApiError
    }
    
    export const loadUserSettings: UserSettingsActionCreator<UserProfileAction> = createAction(
    
    	'[UserSettings] Load UserSettings',
    	props<{ currentUser: UserProfileResource }>()
    );
    
    
    export const loadUserSettingsSuccess: UserSettingsActionCreator<LoadedUserSettingsAction> = createAction(
    
    	props<{ userSettings: UserSettingsResource }>()
    
    export const loadUserSettingsFailure: UserSettingsActionCreator<ApiErrorAction> = createAction(
    
    
    export const setUserSettings: UserSettingsActionCreator<SetUserSettingsAction> = createAction(
    	'[UserSettings] Set UserSettings',
    	props<{ userSettings: UserSettings }>()
    );
    
    
    export const setUserSettingsSuccess: UserSettingsActionCreator<LoadedUserSettingsAction> = createAction(
    
    	'[UserSettings/API] Set UserSettings Success',
    	props<{ userSettings: UserSettingsResource }>()
    );
    
    export const setUserSettingsFailure: UserSettingsActionCreator<ApiErrorAction> = createAction(
    	'[UserSettings/API] Set UserSettings Failure',
    	props<ApiErrorAction>()
    );