reactronic-dom
Version:
Reactronic DOM - Transactional Reactive Front-End Development Framework
15 lines (14 loc) • 524 B
JavaScript
import { Reaction } from '../core/Elements';
export function RxFocuser(name, target, model, setNativeFocus = undefined) {
Reaction(name, { target, model }, (_, node) => {
const isFocused = model.isFocused;
if (setNativeFocus === undefined)
setNativeFocus = () => target.focus();
if (node.isInitialRendering)
target.dataForSensor.focus = model;
if (isFocused)
setNativeFocus();
else
target.blur();
}, undefined, undefined, 0);
}