@vaadin/hilla-react-signals
Version:
Signals for Hilla React
27 lines • 1.11 kB
JavaScript
import { createIncrementCommand, isIncrementCommand } from './commands.js';
import { $createOperation, $processServerResponse, $resolveOperation, $setValueQuietly, $update, } from './FullStackSignal.js';
import { ValueSignal } from './ValueSignal.js';
export class NumberSignal extends ValueSignal {
incrementBy(delta) {
if (delta === 0) {
const resolvedPromise = Promise.resolve(undefined);
return this[$createOperation]({ id: '', promise: resolvedPromise });
}
const command = createIncrementCommand('', delta);
const promise = this[$update](command);
return this[$createOperation]({ id: command.commandId, promise });
}
valueAsInt() {
return Math.trunc(this.value);
}
[$processServerResponse](command) {
if (isIncrementCommand(command)) {
this[$setValueQuietly](this.value + command.delta);
this[$resolveOperation](command.commandId, undefined);
}
else {
super[$processServerResponse](command);
}
}
}
//# sourceMappingURL=NumberSignal.js.map