<script setup>
import { h, onMounted } from 'vue';
import axios from 'axios';

const $props = defineProps({
    autoLoad: {
        type: Boolean,
        default: false,
    },
    url: {
        type: String,
        default: '',
    },
    filter: {
        type: Object,
        default: null,
    },
});

defineExpose({ fetch });
const emit = defineEmits(['onFetch']);

onMounted(async () => {
    if ($props.autoLoad) {
        await fetch();
    }
});

async function fetch() {
    const { data } = await axios.get($props.url, {
        params: { filter: $props.filter },
    });

    emit('onFetch', data);
}

const render = () => {
    return h('div', []);
};
</script>
<template>
    <render />
</template>
