feat: add useRect

This commit is contained in:
chenjiahan 2020-08-26 15:24:50 +08:00
parent b12fdad916
commit 216d326158
3 changed files with 20 additions and 3 deletions

7
src/api/use-rect.ts Normal file
View File

@ -0,0 +1,7 @@
import type { Ref } from 'vue';
export const useRect = (el: Ref<Element>) => el.value.getBoundingClientRect();
export const useWidth = (el: Ref<Element>) => useRect(el).width;
export const useHeight = (el: Ref<Element>) => useRect(el).height;

View File

@ -1,7 +1,10 @@
import { ref, computed, getCurrentInstance } from 'vue';
// Utils
import { createNamespace, addUnit } from '../../utils';
import { unitToPx } from '../../utils/format/unit';
import { setScrollTop } from '../../utils/dom/scroll';
import { getMonthEndDay } from '../../datetime-picker/utils';
import {
t,
bem,
@ -11,8 +14,12 @@ import {
getNextDay,
formatMonthTitle,
} from '../utils';
// Compositions
import { useHeight } from '../../api/use-rect';
import { useToggle } from '../../api/use-toggle';
import { getMonthEndDay } from '../../datetime-picker/utils';
// Components
import Day from './Day';
const [createComponent] = createNamespace('calendar-month');
@ -78,7 +85,7 @@ export default createComponent({
let height;
const getHeight = () => {
if (!height) {
({ height } = monthRef.value.getBoundingClientRect());
height = useHeight(monthRef);
}
return height;
};

View File

@ -4,6 +4,9 @@ import { ref, onMounted } from 'vue';
import { createNamespace } from '../utils';
import { BORDER_BOTTOM } from '../utils/constant';
// Compositions
import { useHeight } from '../api/use-rect';
// Components
import Icon from '../icon';
@ -32,7 +35,7 @@ export default createComponent({
onMounted(() => {
if (props.placeholder && props.fixed) {
height.value = navBarRef.value.getBoundingClientRect().height;
height.value = useHeight(navBarRef);
}
});