@enso-ui/directives
Version:
Vue directives used across Enso UI packages.
26 lines (21 loc) • 509 B
JavaScript
const state = Symbol('scrollIntoView');
const run = (el, { block, inline, behavior }) => {
el.scrollIntoView({ block, inline, behavior });
};
export default {
mounted(el, { value }) {
el[state] = value.scroll;
if (value.scroll) {
run(el, value);
}
},
updated(el, { value }) {
if (!el[state] && value.scroll) {
run(el, value);
}
el[state] = value.scroll;
},
unmounted(el) {
delete el[state];
},
};