Files
vuelato/app/components/detail/PriceVerifier.vue
Alejandro Martinez b8906efc80
Some checks failed
ci / ci (22, ubuntu-latest) (push) Has been cancelled
Initial commit: Vuelato - buscador de vuelos
Nuxt 4 + Supabase + Flightics API. Incluye búsqueda de vuelos,
inspiraciones, watchlist, tracking de precios y mapa interactivo.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 23:37:06 +02:00

45 lines
1.4 KiB
Vue

<script setup lang="ts">
import type { PassengersCount } from '~/server/utils/flightics'
const props = defineProps<{
bookingToken: string
originalPrice: number
passengers: PassengersCount
}>()
const { checkPrice } = useFlightSearch()
const checkedPrice = ref<number | null>(null)
const checking = ref(false)
async function verify() {
checking.value = true
try {
const data = await checkPrice(props.bookingToken, props.passengers)
checkedPrice.value = data.trip.totalCost
} catch {
checkedPrice.value = -1
} finally {
checking.value = false
}
}
</script>
<template>
<UCard>
<div class="flex items-center justify-between">
<div>
<h3 class="font-semibold">Verificar precio actual</h3>
<p class="text-sm text-neutral-500">Comprueba si el precio sigue disponible</p>
</div>
<div class="flex items-center gap-3">
<template v-if="checkedPrice !== null">
<UBadge v-if="checkedPrice === -1" label="No disponible" color="error" />
<UBadge v-else-if="checkedPrice <= originalPrice" :label="`${checkedPrice.toFixed(0)}€`" color="success" />
<UBadge v-else :label="`${checkedPrice.toFixed(0)}€ (subio)`" color="warning" />
</template>
<UButton label="Verificar" icon="i-lucide-refresh-cw" :loading="checking" @click="verify" />
</div>
</div>
</UCard>
</template>