@etsoo/react
Version:
TypeScript ReactJs UI Independent Framework
43 lines (42 loc) • 1.16 kB
JavaScript
import { State } from "./State";
/**
* Page action type
*/
export var PageActionType;
(function (PageActionType) {
// Update data
PageActionType["Data"] = "DATA";
// Update title
PageActionType["Title"] = "TITLE";
})(PageActionType || (PageActionType = {}));
/**
* User state
*/
export class PageState {
/**
* Constructor
*/
constructor() {
// Act
const { context, provider } = State.create((state, { type, data }) => {
switch (type) {
case PageActionType.Data:
// Set page data
return { ...state, ...data };
case PageActionType.Title:
// Same title
if (state.title === data.title && state.subtitle === data.subtitle)
return state;
// Set page title
return {
...state,
...data
};
default:
return state;
}
}, {}, {});
this.context = context;
this.provider = provider;
}
}