@arco-design/web-vue
Version:
Arco Design Vue 2.0: A Vue.js 3 UI Library
18 lines (17 loc) • 605 B
JavaScript
import { toRefs, watch, computed } from "vue";
import { isUndefined } from "../_utils/is.js";
import useState from "./use-state.js";
function useMergeState(defaultValue, props) {
const { value } = toRefs(props);
const [localValue, setLocalValue] = useState(
!isUndefined(value.value) ? value.value : defaultValue
);
watch(value, (newVal) => {
isUndefined(newVal) && setLocalValue(void 0);
});
const mergeValue = computed(
() => !isUndefined(value.value) ? value.value : localValue.value
);
return [mergeValue, setLocalValue, localValue];
}
export { useMergeState as default };