Unify offer cards: RouteStepper + OfferResultCard components
All checks were successful
Build Docker Image / build (push) Successful in 4m36s

- Add RouteStepper component with transport icons (🚛 🚂 🚢)
- Add OfferResultCard with price, distance, route stages
- Update hub page to use OfferResultCard
- Update CalcResultContent to use OfferResultCard
This commit is contained in:
Ruslan Bakiev
2026-01-14 23:47:42 +07:00
parent 1c19e5cb78
commit de95dbd059
4 changed files with 202 additions and 91 deletions

View File

@@ -0,0 +1,39 @@
<template>
<div class="flex items-center gap-1 flex-wrap text-xs">
<template v-for="(stage, index) in stages" :key="index">
<div v-if="index > 0" class="w-3 h-px bg-base-300" />
<div class="flex items-center gap-0.5">
<span>{{ getTransportIcon(stage.transportType) }}</span>
<span class="text-base-content/70">{{ formatDistance(stage.distanceKm) }}км</span>
</div>
</template>
</div>
</template>
<script setup lang="ts">
export interface RouteStage {
transportType?: string | null
distanceKm?: number | null
}
defineProps<{
stages: RouteStage[]
}>()
const getTransportIcon = (type?: string | null) => {
switch (type) {
case 'rail':
return '🚂'
case 'sea':
return '🚢'
case 'road':
default:
return '🚛'
}
}
const formatDistance = (km?: number | null) => {
if (!km) return '0'
return Math.round(km).toLocaleString()
}
</script>