Quality / test (push) Canceled after 0s
Commit the working vertical slices for inventory image processing and the Sale workflow, including Sale history, audited voiding, multi-item persistence, admin UI, migrations, documentation, and tests.
35 lines
1.3 KiB
Vue
35 lines
1.3 KiB
Vue
<script setup>
|
|
import { onMounted } from 'vue';
|
|
import { RouterLink, useRoute } from 'vue-router';
|
|
|
|
import AdminImageManager from '@/components/organisms/AdminImageManager.vue';
|
|
import { useAdminImages } from '@/composables/useAdminImages.js';
|
|
|
|
const route = useRoute();
|
|
const inventoryItemId = route.params.id;
|
|
const { images, isLoading, isSaving, error, load, upload, reorder, setPrimary, updateAltText, retry, remove } = useAdminImages(inventoryItemId);
|
|
|
|
onMounted(load);
|
|
</script>
|
|
|
|
<template>
|
|
<main class="detail-page">
|
|
<RouterLink class="detail-back" :to="{ name: 'catalog' }">Back to catalog</RouterLink>
|
|
<p class="catalog-kicker">Admin inventory</p>
|
|
<h1>Manage images</h1>
|
|
<p v-if="isLoading" class="catalog-state" role="status">Loading images...</p>
|
|
<p v-else-if="error" class="catalog-state catalog-state--error" role="alert">{{ error.message }}</p>
|
|
<AdminImageManager
|
|
v-else
|
|
:images="images"
|
|
:processing-status="isSaving ? 'PROCESSING' : (images[0]?.processingStatus ?? 'COMPLETED')"
|
|
@upload="upload"
|
|
@reorder="reorder($event.id, $event.sortOrder)"
|
|
@primary="setPrimary"
|
|
@alt-text="updateAltText(images[0]?.id, $event)"
|
|
@retry="retry(images[0]?.id)"
|
|
@delete="remove"
|
|
/>
|
|
</main>
|
|
</template>
|