@etsoo/react
Version:
TypeScript ReactJs UI Independent Framework
47 lines (46 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PageState = exports.PageActionType = void 0;
const State_1 = require("./State");
/**
* Page action type
*/
var PageActionType;
(function (PageActionType) {
// Update data
PageActionType["Data"] = "DATA";
// Update title
PageActionType["Title"] = "TITLE";
})(PageActionType || (exports.PageActionType = PageActionType = {}));
/**
* User state
*/
class PageState {
/**
* Constructor
*/
constructor() {
// Act
const { context, provider } = State_1.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;
}
}
exports.PageState = PageState;