homebox/frontend/components/global/DropZone.vue
Hayden bd321af29f
chore: developer cleanup (#300)
* new PR tasks

* add homebox to know words

* formatting

* bump deps

* generate db models

* ts errors

* drop id

* fix accessor

* drop unused time field

* change CI

* add expected error

* add type check

* resolve serveral type errors

* hoise in CI
2023-02-17 21:41:01 -09:00

31 lines
646 B
Vue

<template>
<div
ref="el"
class="h-24 w-full border-2 border-primary border-dashed grid place-content-center"
:class="isOverDropZone ? 'bg-primary bg-opacity-10' : ''"
>
<slot />
</div>
</template>
<script setup lang="ts">
defineProps({
modelValue: {
type: Boolean,
required: false,
},
});
const emit = defineEmits(["update:modelValue", "drop"]);
const el = ref<HTMLDivElement>();
const { isOverDropZone } = useDropZone(el, files => {
emit("drop", files);
});
watch(isOverDropZone, () => {
emit("update:modelValue", isOverDropZone.value);
});
</script>
<style scoped></style>