feat: reconcile application vertical slices
Backfill the completed acquisitions, sales, dashboard, pricing, search, public detail, worker, migration, contracts, validation, tests, and implementation-status changes into one verified application slice.
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
<script setup>
|
||||
import ConditionBadge from '@/components/atoms/ConditionBadge.vue';
|
||||
import PriceDisplay from '@/components/atoms/PriceDisplay.vue';
|
||||
import StatusBadge from '@/components/atoms/StatusBadge.vue';
|
||||
import ImageGallery from '@/components/molecules/ImageGallery.vue';
|
||||
import ConditionBadge from "@/components/atoms/ConditionBadge.vue";
|
||||
import PriceDisplay from "@/components/atoms/PriceDisplay.vue";
|
||||
import StatusBadge from "@/components/atoms/StatusBadge.vue";
|
||||
import ImageGallery from "@/components/molecules/ImageGallery.vue";
|
||||
|
||||
defineProps({
|
||||
title: { type: String, required: true },
|
||||
status: { type: String, default: '' },
|
||||
status: { type: String, default: "" },
|
||||
priceMinor: { type: Number, default: null },
|
||||
marketValueMinor: { type: Number, default: null },
|
||||
marketValueCurrency: { type: String, default: 'USD' },
|
||||
condition: { type: String, default: '' },
|
||||
description: { type: String, default: '' },
|
||||
marketValueCurrency: { type: String, default: "USD" },
|
||||
condition: { type: String, default: "" },
|
||||
description: { type: String, default: "" },
|
||||
facts: { type: Array, default: () => [] },
|
||||
images: { type: Array, default: () => [] },
|
||||
});
|
||||
@@ -29,7 +29,11 @@ defineProps({
|
||||
<p v-if="description" class="detail-notes">{{ description }}</p>
|
||||
<div class="collectible-detail__summary">
|
||||
<PriceDisplay v-if="priceMinor !== null" :amount-minor="priceMinor" />
|
||||
<PriceDisplay v-if="marketValueMinor !== null" label="Market value" :amount-minor="marketValueMinor" />
|
||||
<PriceDisplay
|
||||
v-if="marketValueMinor !== null"
|
||||
label="Market value"
|
||||
:amount-minor="marketValueMinor"
|
||||
/>
|
||||
<ConditionBadge v-if="condition" :label="condition" />
|
||||
</div>
|
||||
<dl v-if="facts.length" class="product-facts">
|
||||
@@ -43,9 +47,33 @@ defineProps({
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.collectible-detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-12); align-items: start; }
|
||||
.collectible-detail__identity { display: grid; gap: var(--space-4); padding-top: var(--space-6); }
|
||||
.collectible-detail__identity h1 { margin: 0; }
|
||||
.collectible-detail__summary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
|
||||
@media (max-width: 768px) { .collectible-detail { grid-template-columns: 1fr; gap: var(--space-6); } .collectible-detail__identity { padding-top: 0; } }
|
||||
</style>
|
||||
.collectible-detail {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
||||
gap: var(--space-12);
|
||||
align-items: start;
|
||||
}
|
||||
.collectible-detail__identity {
|
||||
display: grid;
|
||||
gap: var(--space-4);
|
||||
padding-top: var(--space-6);
|
||||
}
|
||||
.collectible-detail__identity h1 {
|
||||
margin: 0;
|
||||
}
|
||||
.collectible-detail__summary {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: var(--space-4);
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.collectible-detail {
|
||||
grid-template-columns: 1fr;
|
||||
gap: var(--space-6);
|
||||
}
|
||||
.collectible-detail__identity {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user