@extends('layouts.store')
@section('content')
@php
/** @var \App\Models\StoreSetting $s */
$currency = $s->currency_code ?? '$';
$nlBtn = __('messages.Subscribe');
/** @var \Illuminate\Support\Collection $banners */
$byPos = collect($banners ?? [])->groupBy('position');
$printedCenter = false;
$renderBanners = function($list, $wrapClass = 'store-banner-wrap') {
foreach ($list ?? collect() as $b) {
$src = $b->image_url ?? ($b->image ? asset($b->image) : asset('images/brands/no-image.png'));
$href = $b->link ?: route('store.shop');
echo '
';
}
};
@endphp
@include('store.partials.homepage-styles')
{{-- ===== TOP ===== --}}
@if(($byPos['top_left'] ?? collect())->count() || ($byPos['top_right'] ?? collect())->count())
{!! $renderBanners($byPos['top_left'] ?? collect()) !!}
{!! $renderBanners($byPos['top_right'] ?? collect()) !!}
@endif
@forelse($blocks ?? [] as $block)
@switch($block['type'])
@case('hero')
@php
$heroImg = $block['image'] ?? $s->hero_image_path;
$heroUrl = 'https://picsum.photos/seed/hero-store/960/520';
if (!empty($heroImg) && is_string($heroImg) && !\Illuminate\Support\Str::startsWith($heroImg, ['http://', 'https://']) && file_exists(public_path($heroImg))) {
$heroUrl = asset($heroImg);
} elseif (file_exists(public_path('store_files/hero_image.jpg'))) {
$heroUrl = asset('store_files/hero_image.jpg');
}
@endphp
{{ __('messages.Shop') }}
{{ $block['title'] ?? $s->hero_title }}
{{ $block['subtitle'] ?? $s->hero_subtitle }}
{{ __('messages.ShopNow') }}
{{-- ===== CENTER (left / right) — print once after the first hero ===== --}}
@if(!$printedCenter && ( ($byPos['center_left'] ?? collect())->count() || ($byPos['center_right'] ?? collect())->count() ))
{!! $renderBanners($byPos['center_left'] ?? collect()) !!}
{!! $renderBanners($byPos['center_right'] ?? collect()) !!}
@php $printedCenter = true; @endphp
@endif
@break
@case('collection')
@php
$col = $block['collection'];
$prods = $block['products'] ?? collect();
$title = $block['title'] ?? ($col->title ?? $col->name ?? __('messages.Collection'));
@endphp
@if($prods->count())
{{ __('messages.Collection') }}
{{ $title }}
{{ __('messages.ViewAll') }}
@foreach($prods as $p)
@include('store.partials.product-card', ['p' => $p, 'currency' => $currency])
@endforeach
@endif
@break
@case('newsletter')
@php
$nlTitle = $s->newsletter_title ?? __('messages.GetFreshDealsTitle');
$nlSubtitle = $s->newsletter_subtitle ?? __('messages.GetFreshDealsSubtitle');
$nlPlaceholder = $s->newsletter_placeholder ?? __('messages.NewsletterEmailPlaceholder');
@endphp
{{ $nlTitle }}
{{ $nlSubtitle }}
@break
@endswitch
@empty
{{-- ===== CENTER (left / right) after fallback hero ===== --}}
@if(!$printedCenter && ( ($byPos['center_left'] ?? collect())->count() || ($byPos['center_right'] ?? collect())->count() ))
{!! $renderBanners($byPos['center_left'] ?? collect()) !!}
{!! $renderBanners($byPos['center_right'] ?? collect()) !!}
@php $printedCenter = true; @endphp
@endif
@endforelse
{{-- ===== If no hero rendered, still print CENTER once ===== --}}
@if(!$printedCenter && ( ($byPos['center_left'] ?? collect())->count() || ($byPos['center_right'] ?? collect())->count() ))
{!! $renderBanners($byPos['center_left'] ?? collect()) !!}
{!! $renderBanners($byPos['center_right'] ?? collect()) !!}
@endif
{{-- ===== FOOTER (left / right) ===== --}}
@if(($byPos['footer_left'] ?? collect())->count() || ($byPos['footer_right'] ?? collect())->count())
{!! $renderBanners($byPos['footer_left'] ?? collect()) !!}
{!! $renderBanners($byPos['footer_right'] ?? collect()) !!}
@endif
{{-- ==== Quick View Modal (image + description + VARIANTS) ==== --}}