tav-ui
Version:
1 lines • 4.74 kB
Source Map (JSON)
{"version":3,"file":"useBreakpoint2.mjs","sources":["../../../../../../packages/hooks/event/useBreakpoint.ts"],"sourcesContent":["import { computed, ref, unref } from 'vue'\nimport { screenEnum, screenMap, sizeEnum } from '@tav-ui/enums/breakpointEnum'\nimport { useEventListener } from './useEventListener'\nimport type { ComputedRef } from 'vue'\n\nlet globalScreenRef: ComputedRef<sizeEnum | undefined>\nlet globalWidthRef: ComputedRef<number>\nlet globalRealWidthRef: ComputedRef<number>\n\nexport interface CreateCallbackParams {\n screen: ComputedRef<sizeEnum | undefined>\n width: ComputedRef<number>\n realWidth: ComputedRef<number>\n screenEnum: typeof screenEnum\n screenMap: Map<sizeEnum, number>\n sizeEnum: typeof sizeEnum\n}\n\nexport function useBreakpoint() {\n return {\n screenRef: computed(() => unref(globalScreenRef)),\n widthRef: globalWidthRef,\n screenEnum,\n realWidthRef: globalRealWidthRef,\n }\n}\n\n// Just call it once\nexport function createBreakpointListen(fn?: (opt: CreateCallbackParams) => void) {\n const screenRef = ref<sizeEnum>(sizeEnum.XL)\n const realWidthRef = ref(window.innerWidth)\n\n function getWindowWidth() {\n const width = document.body.clientWidth\n const xs = screenMap.get(sizeEnum.XS)!\n const sm = screenMap.get(sizeEnum.SM)!\n const md = screenMap.get(sizeEnum.MD)!\n const lg = screenMap.get(sizeEnum.LG)!\n const xl = screenMap.get(sizeEnum.XL)!\n if (width < xs) screenRef.value = sizeEnum.XS\n else if (width < sm) screenRef.value = sizeEnum.SM\n else if (width < md) screenRef.value = sizeEnum.MD\n else if (width < lg) screenRef.value = sizeEnum.LG\n else if (width < xl) screenRef.value = sizeEnum.XL\n else screenRef.value = sizeEnum.XXL\n\n realWidthRef.value = width\n }\n\n useEventListener({\n el: window,\n name: 'resize',\n\n listener: () => {\n getWindowWidth()\n resizeFn()\n },\n // wait: 100,\n })\n\n getWindowWidth()\n globalScreenRef = computed(() => unref(screenRef))\n globalWidthRef = computed((): number => screenMap.get(unref(screenRef)!)!)\n globalRealWidthRef = computed((): number => unref(realWidthRef))\n\n function resizeFn() {\n fn?.({\n screen: globalScreenRef,\n width: globalWidthRef,\n realWidth: globalRealWidthRef,\n screenEnum,\n screenMap,\n sizeEnum,\n })\n }\n\n resizeFn()\n return {\n screenRef: globalScreenRef,\n screenEnum,\n widthRef: globalWidthRef,\n realWidthRef: globalRealWidthRef,\n }\n}\n"],"names":[],"mappings":"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"}