* feat: hopp ui initialized * feat: button components added * feat: windi css integration * chore: package removed from hopp ui * feat: storybook added * feat: move all smart components hoppscotch-ui * fix: import issue from components/smart * fix: env input component import * feat: add hoppui to windicss config * fix: remove storybook * feat: move components from hoppscotch-ui * feat: storybook added * feat: storybook progress * feat: themeing storybook * feat: add stories * chore: package updated * chore: stories added * feat: stories added * feat: stories added * feat: icons resolved * feat: i18n composable resolved * feat: histoire added * chore: resolved prettier issue * feat: radio story added * feat: story added for all components * feat: new components added to stories * fix: resolved issues * feat: readme.md added * feat: context/provider added * chore: removed app component registry * chore: remove importing of all components in hopp-ui to allow code splitting * chore: fix vite config errors * chore: jsdoc added * chore: any replaced with smart-item * chore: i18n added to ui components * chore: clean up - removed a duplicate button --------- Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com> Co-authored-by: Liyas Thomas <liyascthomas@gmail.com>
38 lines
824 B
Vue
38 lines
824 B
Vue
<template>
|
|
<div ref="container">
|
|
<slot></slot>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { onBeforeUnmount, onMounted, ref } from "vue"
|
|
|
|
/*
|
|
Implements a wrapper listening to viewport intersections via
|
|
IntersectionObserver API
|
|
|
|
Events
|
|
------
|
|
intersecting (entry: IntersectionObserverEntry) -> When the component is intersecting the viewport
|
|
*/
|
|
const observer = ref<IntersectionObserver>()
|
|
const container = ref<Element>()
|
|
|
|
const emit = defineEmits<{
|
|
(e: "intersecting", entry: IntersectionObserverEntry): void
|
|
}>()
|
|
|
|
onMounted(() => {
|
|
observer.value = new IntersectionObserver(([entry]) => {
|
|
if (entry && entry.isIntersecting) {
|
|
emit("intersecting", entry)
|
|
}
|
|
})
|
|
|
|
observer.value.observe(container.value!)
|
|
})
|
|
|
|
onBeforeUnmount(() => {
|
|
observer.value!.disconnect()
|
|
})
|
|
</script>
|