soiz1's picture
Upload folder using huggingface_hub
4d70170 verified
raw
history blame
1.04 kB
import type { ComputedRef, Plugin, Ref } from 'vue'
import { computed, inject, reactive, toRefs } from 'vue'
export interface Responsive {
wide: ComputedRef<boolean>
tall: ComputedRef<boolean>
width: Ref<number>
height: Ref<number>
}
const responsiveKey = Symbol('responsive')
export default {
install(app) {
function buildResponsive() {
const data = reactive({
width: window.innerWidth,
height: window.innerHeight,
})
const wide = computed(() => data.width >= 1050)
const tall = computed(() => data.height >= 350)
return {
...toRefs(data),
wide,
tall,
}
}
const responsive = buildResponsive()
app.config.globalProperties.$responsive = responsive
app.provide(responsiveKey, responsive)
window.addEventListener('resize', () => {
responsive.width.value = window.innerWidth
responsive.height.value = window.innerHeight
})
},
} as Plugin
export const useResponsive = () => inject<Responsive>(responsiveKey)