@arco-design/web-vue
Version:
Arco Design Vue 2.0: A Vue.js 3 UI Library
47 lines (46 loc) • 1.61 kB
JavaScript
import { toRefs, computed, reactive, ref, watch } from "vue";
import useTimeFormat from "../../time-picker/hooks/use-time-format.js";
import { getDayjsValue, getNow } from "../../_utils/date.js";
function useTimePickerValue(props) {
const { timePickerProps, selectedValue } = toRefs(props);
const timePickerPropsFormat = computed(() => {
var _a;
return (_a = timePickerProps == null ? void 0 : timePickerProps.value) == null ? void 0 : _a.format;
});
const timePickerPropsUse12Hours = computed(
() => {
var _a;
return !!((_a = timePickerProps == null ? void 0 : timePickerProps.value) == null ? void 0 : _a.use12Hours);
}
);
const { format } = useTimeFormat(
reactive({
format: timePickerPropsFormat,
use12Hours: timePickerPropsUse12Hours
})
);
const defaultTimePickerValue = computed(
() => {
var _a;
return getDayjsValue(
(_a = timePickerProps == null ? void 0 : timePickerProps.value) == null ? void 0 : _a.defaultValue,
format.value
);
}
);
const getDefaultValue = () => (selectedValue == null ? void 0 : selectedValue.value) || defaultTimePickerValue.value || getNow();
const timePickerValue = ref(getDefaultValue());
function setTimePickerValue(val) {
if (val) {
timePickerValue.value = val;
}
}
function resetTimePickerValue() {
timePickerValue.value = getDefaultValue();
}
watch(selectedValue, (newVal) => {
setTimePickerValue(newVal);
});
return [timePickerValue, setTimePickerValue, resetTimePickerValue];
}
export { useTimePickerValue as default };