@muban/muban
Version:
Writing components for server-rendered HTML
20 lines (19 loc) • 592 B
JavaScript
import { unref, watchEffect } from '@vue/runtime-core';
function updateDisabledState(target, disabled) {
if (disabled && target.disabled) {
target.removeAttribute('disabled');
}
else if (!disabled && !target.disabled) {
target.disabled = true;
}
}
export function enableBinding(target, valueAccessor) {
return watchEffect(() => {
updateDisabledState(target, !unref(valueAccessor));
});
}
export function disableBinding(target, valueAccessor) {
return watchEffect(() => {
updateDisabledState(target, unref(valueAccessor));
});
}