Skip to content

Commit

Permalink
Move ViewStatus factories into a single file; Rename ViewStateActions…
Browse files Browse the repository at this point in the history
…Config; Update README.md; Increase Library version (#3)
  • Loading branch information
yurakhomitsky authored Jun 27, 2024
1 parent a14ee90 commit f4eb9f2
Show file tree
Hide file tree
Showing 12 changed files with 59 additions and 56 deletions.
7 changes: 7 additions & 0 deletions projects/ngx-view-state/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
## Changelog

## 2.0.0

- Rename ViewStateActionsConfig properties
- `resetLoadingOn` to `resetOn`
- `error` to `errorOn`


## 1.0.2

- Update peerDependencies and keywords
Expand Down
8 changes: 4 additions & 4 deletions projects/ngx-view-state/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,13 @@ constructor(private actions$: Actions, private viewStateActionsService: ViewStat
this.viewStateActionsService.add([
{
startLoadingOn: TodosActions.loadTodos,
resetLoadingOn: [TodosActions.loadTodosSuccess],
error: [TodosActions.loadTodosFailure]
resetOn: [TodosActions.loadTodosSuccess],
errorOn: [TodosActions.loadTodosFailure]
},
{
startLoadingOn: TodosActions.addTodo,
resetLoadingOn: [TodosActions.addTodoSuccess],
error: [TodosActions.addTodoFailure]
resetOn: [TodosActions.addTodoSuccess],
errorOn: [TodosActions.addTodoFailure]
},
// Update and delete actions can be added in the same way
]);
Expand Down
2 changes: 1 addition & 1 deletion projects/ngx-view-state/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ngx-view-state",
"version": "1.0.2",
"version": "2.0.0",
"license": "MIT",
"description": "ngx-view-state is a library for managing the Loading/Success/Error states of views in Angular applications that use Ngrx or HttpClient",
"author": "Yurii Khomitskyi <yura.khomitsky8@gmail.com>",
Expand Down

This file was deleted.

This file was deleted.

35 changes: 31 additions & 4 deletions projects/ngx-view-state/src/lib/view-state/factories/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,31 @@
export { idleViewStatus } from './idle-view-status';
export { loadingViewStatus } from './loading-view-status';
export { loadedViewStatus } from './loaded-view-status';
export { errorViewStatus } from './error-view-status';
import { ViewError, ViewIdle, ViewLoaded, ViewLoading } from '../models/view-status.model';
import { ViewStatusEnum } from '../models/view-status.enum';


export function loadingViewStatus(): ViewLoading {
return { type: ViewStatusEnum.LOADING };
}

export function idleViewStatus(): ViewIdle {
return {
type: ViewStatusEnum.IDLE,
};
}

export function loadedViewStatus(): ViewLoaded {
return {
type: ViewStatusEnum.LOADED,
};
}

export function errorViewStatus<E>(error?: E): ViewError<E> {
return {
type: ViewStatusEnum.ERROR,
error,
};
}





This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ describe('ViewStateActionsService', () => {
const actionsConfig: ViewStateActionsConfig[] = [
{
startLoadingOn: loadData,
resetLoadingOn: [loadDataSuccess],
error: [lodDataFailure],
resetOn: [loadDataSuccess],
errorOn: [lodDataFailure],
},
];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ export type ActionsMapConfig = { viewState: 'startLoading' } | { viewState: 're

export interface ViewStateActionsConfig {
startLoadingOn: Action;
resetLoadingOn: Action[];
error: Action[];
resetOn: Action[];
errorOn: Action[];
}


Expand Down Expand Up @@ -46,11 +46,11 @@ export class ViewStateActionsService {
actions.forEach((action: ViewStateActionsConfig) => {
this.actionsMap.set(action.startLoadingOn.type, { viewState: 'startLoading' });

action.resetLoadingOn.forEach((resetLoading: Action) => {
action.resetOn.forEach((resetLoading: Action) => {
this.actionsMap.set(resetLoading.type, { viewState: 'resetLoading', actionType: action.startLoadingOn.type });
});

action.error.forEach((errorAction: Action) => {
action.errorOn.forEach((errorAction: Action) => {
this.actionsMap.set(errorAction.type, { viewState: 'error', actionType: action.startLoadingOn.type });
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ describe('ViewStateIntegration', () => {
this.viewStateActionsService.add([
{
startLoadingOn: DataActions.loadData,
resetLoadingOn: [DataActions.loadDataSuccess],
error: [DataActions.loadDataFailure],
resetOn: [DataActions.loadDataSuccess],
errorOn: [DataActions.loadDataFailure],
},
]);
}
Expand Down
16 changes: 8 additions & 8 deletions src/app/todos/store/todos.effects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,23 @@ export class TodosEffects {
this.viewStateActionsService.add([
{
startLoadingOn: TodosActions.loadTodos,
resetLoadingOn: [TodosActions.loadTodosSuccess],
error: [TodosActions.loadTodosFailure]
resetOn: [TodosActions.loadTodosSuccess],
errorOn: [TodosActions.loadTodosFailure]
},
{
startLoadingOn: TodosActions.addTodo,
resetLoadingOn: [TodosActions.addTodoSuccess],
error: [TodosActions.addTodoFailure]
resetOn: [TodosActions.addTodoSuccess],
errorOn: [TodosActions.addTodoFailure]
},
{
startLoadingOn: TodosActions.updateTodo,
resetLoadingOn: [TodosActions.updateTodoSuccess],
error: [TodosActions.updateTodoFailure]
resetOn: [TodosActions.updateTodoSuccess],
errorOn: [TodosActions.updateTodoFailure]
},
{
startLoadingOn: TodosActions.deleteTodo,
resetLoadingOn: [TodosActions.deleteTodoSuccess],
error: [TodosActions.deleteTodoFailure]
resetOn: [TodosActions.deleteTodoSuccess],
errorOn: [TodosActions.deleteTodoFailure]
}
]);
}
Expand Down

0 comments on commit f4eb9f2

Please sign in to comment.