refactor: rework ModalWaiting to new requests

This commit is contained in:
axolotle 2024-08-05 17:14:34 +02:00
parent 13ce366d9c
commit f0bd35e2b1

View file

@ -1,19 +1,20 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed } from 'vue' import { computed } from 'vue'
import MessageListGroup from '@/components/MessageListGroup.vue' import ModalOverlay from '@/components/modals/ModalOverlay.vue'
import type { Obj } from '@/types/commons' import type { APIRequest } from '@/composables/useRequests'
const props = defineProps<{ const props = defineProps<{
request: Obj request: APIRequest
}>() }>()
const hasMessages = computed(() => { const messages = computed(() => {
return props.request.messages && props.request.messages.length > 0 const messages = props.request.action?.messages
return messages?.length ? messages : null
}) })
const progress = computed(() => { const progress = computed(() => {
const progress = props.request.progress const progress = props.request.action?.progress
if (!progress) return null if (!progress) return null
return { return {
values: progress, values: progress,
@ -23,29 +24,26 @@ const progress = computed(() => {
</script> </script>
<template> <template>
<!-- This card receives style from `ViewLockOverlay` if used inside it --> <ModalOverlay :request="request">
<BCardBody> <h5
<BCardTitle v-t="messages || progress ? 'api.processing' : 'api.waiting'"
class="text-center mt-4" class="text-center mt-4"
v-t="hasMessages ? 'api.processing' : 'api_waiting'"
/> />
<!-- PROGRESS BAR --> <BProgress v-if="progress" :max="progress.max" height=".5rem" class="my-4">
<BProgress v-if="progress" class="my-4" :max="progress.max" height=".5rem">
<BProgressBar variant="success" :value="progress.values[0]" /> <BProgressBar variant="success" :value="progress.values[0]" />
<BProgressBar variant="warning" :value="progress.values[1]" animated /> <BProgressBar variant="warning" :value="progress.values[1]" animated />
<BProgressBar variant="secondary" :value="progress.values[2]" striped /> <BProgressBar variant="secondary" :value="progress.values[2]" striped />
</BProgress> </BProgress>
<!-- OR SPINNER -->
<YSpinner v-else class="my-4" /> <YSpinner v-else class="my-4" />
<MessageListGroup <MessageListGroup
v-if="hasMessages" v-if="messages"
:messages="request.messages" auto-scroll
bordered bordered
fixed-height fixed-height
auto-scroll
:limit="100" :limit="100"
:messages="messages"
/> />
</BCardBody> </ModalOverlay>
</template> </template>