vuestic-ui
Version:
Vue 3 UI Framework
1 lines • 1.21 kB
Source Map (JSON)
{"version":3,"file":"useWindowSize.mjs","sources":["../../../../src/composables/useWindowSize.ts"],"sourcesContent":["import { reactive, computed, watch } from 'vue'\n\nimport { useEvent } from './'\nimport { isClient } from '../utils/ssr'\n\ntype WindowSizes = Record<'width' | 'height', number | undefined>\n\nexport function useWindowSize () {\n const windowSizes = reactive<WindowSizes>({\n width: undefined,\n height: undefined,\n })\n\n const setCurrentWindowSizes = () => {\n windowSizes.width = window?.innerWidth\n windowSizes.height = window?.innerHeight\n }\n\n const isMounted = computed(isClient)\n watch(isMounted, (newValue) => {\n if (!newValue) { return }\n setCurrentWindowSizes()\n }, { immediate: true })\n useEvent('resize', setCurrentWindowSizes, true)\n\n return { windowSizes }\n}\n"],"names":[],"mappings":";;;AAOO,SAAS,gBAAiB;AAC/B,QAAM,cAAc,SAAsB;AAAA,IACxC,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA,CACT;AAED,QAAM,wBAAwB,MAAM;AAClC,gBAAY,QAAQ,iCAAQ;AAC5B,gBAAY,SAAS,iCAAQ;AAAA,EAAA;AAGzB,QAAA,YAAY,SAAS,QAAQ;AAC7B,QAAA,WAAW,CAAC,aAAa;AAC7B,QAAI,CAAC,UAAU;AAAE;AAAA,IAAO;AACF;EAAA,GACrB,EAAE,WAAW,KAAA,CAAM;AACb,WAAA,UAAU,uBAAuB,IAAI;AAE9C,SAAO,EAAE,YAAY;AACvB;"}