SimplePageListLoader.vue 834 B

12345678910111213141516171819202122232425262728
  1. <template>
  2. <Loadmore
  3. v-if="
  4. loader.loadStatus.value == 'loading'
  5. || (loader.loadStatus.value == 'nomore' && !$slots.empty)"
  6. :status="loader.loadStatus.value"
  7. />
  8. <slot v-else-if="loader.loadStatus.value == 'nomore' && $slots.empty" name="empty" />
  9. <Loadmore v-else-if="loader.loadStatus.value == 'error'" status="loadmore" :loadmoreText="loader.loadError.value" @loadmore="handleRetry" />
  10. </template>
  11. <script setup lang="ts">
  12. import type { PropType } from 'vue';
  13. import type { ISimplePageListLoader } from '../composeabe/SimplePageListLoader';
  14. import Loadmore from '@/components/display/loading/Loadmore.vue';
  15. const props = defineProps({
  16. loader: {
  17. type: Object as PropType<ISimplePageListLoader<any, any>>,
  18. default: null,
  19. },
  20. })
  21. function handleRetry() {
  22. props.loader.loadData();
  23. }
  24. </script>