UNPKG

@muban/muban

Version:

Writing components for server-rendered HTML

22 lines (21 loc) 726 B
import { unref, watchEffect } from '@vue/runtime-core'; function updateVisibleState(target, visible) { const isCurrentlyVisible = !(target.style.display === 'none'); if (visible && !isCurrentlyVisible) { // TODO: resort to previous value before switching to "none" target.style.display = ''; } else if (!visible && isCurrentlyVisible) { target.style.display = 'none'; } } export function visibleBinding(target, valueAccessor) { return watchEffect(() => { updateVisibleState(target, unref(valueAccessor)); }); } export function hiddenBinding(target, valueAccessor) { return watchEffect(() => { updateVisibleState(target, !unref(valueAccessor)); }); }