complete story 9.9 with qa test

This commit is contained in:
Naser Mansour
2026-01-03 02:39:33 +02:00
parent 9abaa93a49
commit 9228921669
16 changed files with 968 additions and 194 deletions
@@ -184,7 +184,7 @@ new class extends Component
}; ?>
<div class="max-w-4xl mx-auto">
<flux:heading size="xl" class="mb-6">{{ __('booking.request_consultation') }}</flux:heading>
<flux:heading size="xl" class="mb-6 text-xl sm:text-2xl">{{ __('booking.request_consultation') }}</flux:heading>
{{-- Booking Status Banner --}}
<div class="mb-6 rounded-lg border p-4 {{ $canBookToday ? 'border-green-200 bg-green-50 dark:border-green-800 dark:bg-green-900/20' : 'border-amber-200 bg-amber-50 dark:border-amber-800 dark:bg-amber-900/20' }}">
@@ -275,7 +275,7 @@ new class extends Component
<flux:button
wire:click="showConfirm"
class="mt-4"
class="mt-4 w-full sm:w-auto min-h-[44px]"
wire:loading.attr="disabled"
>
<span wire:loading.remove wire:target="showConfirm">{{ __('booking.continue') }}</span>
@@ -301,14 +301,15 @@ new class extends Component
</div>
</flux:callout>
<div class="flex gap-3 mt-4">
<flux:button wire:click="$set('showConfirmation', false)">
<div class="flex flex-col sm:flex-row gap-3 mt-4">
<flux:button wire:click="$set('showConfirmation', false)" class="w-full sm:w-auto min-h-[44px] justify-center">
{{ __('common.back') }}
</flux:button>
<flux:button
wire:click="submit"
variant="primary"
wire:loading.attr="disabled"
class="w-full sm:w-auto min-h-[44px] justify-center"
>
<span wire:loading.remove wire:target="submit">{{ __('booking.submit_request') }}</span>
<span wire:loading wire:target="submit">{{ __('common.submitting') }}</span>
@@ -43,11 +43,11 @@ new class extends Component
}
}; ?>
<div class="space-y-8">
<div class="space-y-6 sm:space-y-8">
{{-- Header --}}
<div class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">
<flux:heading size="xl">{{ __('booking.my_consultations') }}</flux:heading>
<flux:button href="{{ route('client.consultations.book') }}" variant="primary" wire:navigate>
<div class="page-header">
<flux:heading size="xl" class="text-xl sm:text-2xl">{{ __('booking.my_consultations') }}</flux:heading>
<flux:button href="{{ route('client.consultations.book') }}" variant="primary" wire:navigate class="w-full sm:w-auto justify-center">
{{ __('booking.request_consultation') }}
</flux:button>
</div>
@@ -60,12 +60,12 @@ new class extends Component
{{-- Upcoming Consultations Section --}}
<section>
<flux:heading size="lg" class="mb-4">{{ __('booking.upcoming_consultations') }}</flux:heading>
<flux:heading size="lg" class="mb-4 text-base sm:text-lg">{{ __('booking.upcoming_consultations') }}</flux:heading>
@if($upcoming->isNotEmpty())
<div class="space-y-4">
<div class="space-y-3 sm:space-y-4">
@foreach($upcoming as $consultation)
<div wire:key="upcoming-{{ $consultation->id }}" class="bg-white dark:bg-zinc-800 rounded-lg p-4 border border-zinc-200 dark:border-zinc-700">
<div wire:key="upcoming-{{ $consultation->id }}" class="bg-white dark:bg-zinc-800 rounded-lg p-3 sm:p-4 border border-zinc-200 dark:border-zinc-700">
<div class="flex flex-col sm:flex-row justify-between items-start gap-4">
<div class="flex-1">
<div class="flex items-center gap-2 mb-2">
@@ -101,11 +101,12 @@ new class extends Component
@endif
</div>
</div>
<div class="flex-shrink-0">
<div class="flex-shrink-0 w-full sm:w-auto">
<flux:button
size="sm"
href="{{ route('client.consultations.calendar', $consultation) }}"
icon="calendar-days"
class="w-full sm:w-auto justify-center"
>
{{ __('booking.add_to_calendar') }}
</flux:button>
@@ -115,11 +116,11 @@ new class extends Component
@endforeach
</div>
@else
<div class="bg-zinc-50 dark:bg-zinc-800/50 rounded-lg p-8 text-center">
<flux:icon name="calendar-days" class="w-12 h-12 mx-auto text-zinc-300 dark:text-zinc-600 mb-3" />
<div class="empty-state bg-zinc-50 dark:bg-zinc-800/50 rounded-lg">
<flux:icon name="calendar-days" class="empty-state-icon text-zinc-300 dark:text-zinc-600" />
<flux:text class="text-zinc-500 dark:text-zinc-400">{{ __('booking.no_upcoming_consultations') }}</flux:text>
<div class="mt-4">
<flux:button href="{{ route('client.consultations.book') }}" variant="primary" size="sm" wire:navigate>
<flux:button href="{{ route('client.consultations.book') }}" variant="primary" size="sm" wire:navigate class="w-full sm:w-auto">
{{ __('booking.book_consultation') }}
</flux:button>
</div>
@@ -129,12 +130,12 @@ new class extends Component
{{-- Pending Requests Section --}}
<section>
<flux:heading size="lg" class="mb-4">{{ __('booking.pending_requests') }}</flux:heading>
<flux:heading size="lg" class="mb-4 text-base sm:text-lg">{{ __('booking.pending_requests') }}</flux:heading>
@if($pending->isNotEmpty())
<div class="space-y-4">
<div class="space-y-3 sm:space-y-4">
@foreach($pending as $consultation)
<div wire:key="pending-{{ $consultation->id }}" class="bg-white dark:bg-zinc-800 rounded-lg p-4 border border-zinc-200 dark:border-zinc-700">
<div wire:key="pending-{{ $consultation->id }}" class="bg-white dark:bg-zinc-800 rounded-lg p-3 sm:p-4 border border-zinc-200 dark:border-zinc-700">
<div class="flex flex-col sm:flex-row justify-between items-start gap-4">
<div class="flex-1">
<div class="flex items-center gap-2 mb-2">
@@ -166,8 +167,8 @@ new class extends Component
@endforeach
</div>
@else
<div class="bg-zinc-50 dark:bg-zinc-800/50 rounded-lg p-8 text-center">
<flux:icon name="inbox" class="w-12 h-12 mx-auto text-zinc-300 dark:text-zinc-600 mb-3" />
<div class="empty-state bg-zinc-50 dark:bg-zinc-800/50 rounded-lg">
<flux:icon name="inbox" class="empty-state-icon text-zinc-300 dark:text-zinc-600" />
<flux:text class="text-zinc-500 dark:text-zinc-400">{{ __('booking.no_pending_requests') }}</flux:text>
</div>
@endif
@@ -175,12 +176,12 @@ new class extends Component
{{-- Past Consultations Section --}}
<section>
<flux:heading size="lg" class="mb-4">{{ __('booking.past_consultations') }}</flux:heading>
<flux:heading size="lg" class="mb-4 text-base sm:text-lg">{{ __('booking.past_consultations') }}</flux:heading>
@if($past->isNotEmpty())
<div class="space-y-4">
<div class="space-y-3 sm:space-y-4">
@foreach($past as $consultation)
<div wire:key="past-{{ $consultation->id }}" class="bg-white dark:bg-zinc-800 rounded-lg p-4 border border-zinc-200 dark:border-zinc-700">
<div wire:key="past-{{ $consultation->id }}" class="bg-white dark:bg-zinc-800 rounded-lg p-3 sm:p-4 border border-zinc-200 dark:border-zinc-700">
<div class="flex flex-col sm:flex-row justify-between items-start gap-4">
<div class="flex-1">
<div class="flex items-center gap-2 mb-2">
@@ -225,8 +226,8 @@ new class extends Component
{{ $past->links() }}
</div>
@else
<div class="bg-zinc-50 dark:bg-zinc-800/50 rounded-lg p-8 text-center">
<flux:icon name="archive-box" class="w-12 h-12 mx-auto text-zinc-300 dark:text-zinc-600 mb-3" />
<div class="empty-state bg-zinc-50 dark:bg-zinc-800/50 rounded-lg">
<flux:icon name="archive-box" class="empty-state-icon text-zinc-300 dark:text-zinc-600" />
<flux:text class="text-zinc-500 dark:text-zinc-400">{{ __('booking.no_past_consultations') }}</flux:text>
</div>
@endif