SimplePageListLoader.vue 854 B

1234567891011121314151617181920212223242526272829303132
  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 == 'empty' && $slots.empty" name="empty" />
  9. <Loadmore
  10. v-else-if="loader.loadStatus.value == 'error'"
  11. status="loadmore"
  12. :loadmoreText="loader.loadError.value"
  13. @loadmore="handleRetry"
  14. />
  15. </template>
  16. <script setup lang="ts">
  17. import type { PropType } from 'vue';
  18. import type { ISimplePageListLoader } from '../composeabe/SimplePageListLoader';
  19. import Loadmore from '@/components/display/loading/Loadmore.vue';
  20. const props = defineProps({
  21. loader: {
  22. type: Object as PropType<ISimplePageListLoader<any, any>>,
  23. default: null,
  24. },
  25. })
  26. function handleRetry() {
  27. props.loader.loadData();
  28. }
  29. </script>