@ts-kit/lit-framework
Version:
Framework arouhd Lit-Html
32 lines • 1.45 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { Inject, RootService } from '@ts-kit/di';
class StateBase {
constructor(stateChangeCallback, currentState) {
this.stateChangeCallback = stateChangeCallback;
this.currentState = currentState;
}
setState(state) {
let stateRes = state(this.currentState);
stateRes = stateRes instanceof Promise ? stateRes : Promise.resolve(stateRes);
stateRes.then(res => {
this.currentState = res;
this.stateChangeCallback(this.currentState);
});
}
}
export class ComponentState extends StateBase {
}
let AppState = class AppState extends StateBase {
};
AppState = __decorate([
RootService()
], AppState);
export { AppState };
export const App = () => (c, k, i) => Inject(AppState)(c, k, i);
export const State = () => (c, k, i) => Inject(ComponentState)(c, k, i);
//# sourceMappingURL=state.js.map