@sigi/react
Version:
React bindings for sigi framework
55 lines • 1.95 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Effect, EffectModule, ImmerReducer, Module } from '@sigi/core';
import { endWith, map, mergeMap, Observable, switchMap, timer } from 'rxjs';
let CountModule = class CountModule extends EffectModule {
constructor() {
super(...arguments);
this.defaultState = { count: 0, name: '' };
}
setCount(state, count) {
state.count = count;
}
setName(state, name) {
state.name = name;
}
getCount(payload$) {
return payload$.pipe(mergeMap(() => timer(20).pipe(map(() => this.getActions().setCount(1)), endWith(this.terminate()))));
}
skippedEffect(payload$) {
return payload$.pipe(switchMap((name) => timer(20).pipe(map(() => this.getActions().setName(name)), endWith(this.terminate()))));
}
};
__decorate([
ImmerReducer(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, Number]),
__metadata("design:returntype", void 0)
], CountModule.prototype, "setCount", null);
__decorate([
ImmerReducer(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, String]),
__metadata("design:returntype", void 0)
], CountModule.prototype, "setName", null);
__decorate([
Effect({
ssr: true,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Observable]),
__metadata("design:returntype", void 0)
], CountModule.prototype, "getCount", null);
__decorate([
Effect({
payloadGetter: (ctx, skip) => ctx.url || skip,
skipFirstClientDispatch: false,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Observable]),
__metadata("design:returntype", void 0)
], CountModule.prototype, "skippedEffect", null);
CountModule = __decorate([
Module('CountModule')
], CountModule);
export { CountModule };
//# sourceMappingURL=count.module.js.map