@arco-design/web-vue
Version:
Arco Design Vue 2.0: A Vue.js 3 UI Library
24 lines (23 loc) • 743 B
JavaScript
import { computed } from "vue";
import { isNumber, isObject } from "../../_utils/is.js";
import { responsiveArray } from "../../_utils/responsive-observe.js";
function useResponsiveValue(props) {
const value = computed(() => {
const { val, key, xs, sm, md, lg, xl, xxl } = props.value;
if (!xs && !sm && !md && !lg && !xl && !xxl) {
return val;
}
const result = {};
responsiveArray.forEach((breakpoint) => {
const config = props.value[breakpoint];
if (isNumber(config)) {
result[breakpoint] = config;
} else if (isObject(config) && isNumber(config[key])) {
result[breakpoint] = config[key];
}
});
return result;
});
return value;
}
export { useResponsiveValue };