Files
ladill-pos/resources/views/components/app-layout.blade.php
T
isaaccladandCursor 3c0172f098
Deploy Ladill POS / deploy (push) Successful in 40s
Embed POS checkouts in a modal/sheet using the seller email.
Card/MoMo always initializes with the merchant email, and Paystack/Flutterwave/Hubtel open in-page (desktop modal, mobile bottomsheet) instead of a full redirect.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 08:29:07 +00:00

62 lines
2.9 KiB
PHP

@props(['title' => 'Ladill POS', 'heading' => null])
<!DOCTYPE html>
<html lang="en" class="h-full bg-slate-100">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ $title }} · Ladill POS</title>
@include('partials.favicon')
<link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600,700&display=swap" rel="stylesheet" />
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
<body class="h-full font-sans antialiased bg-slate-100" x-data="{ sidebarOpen: false }">
<div class="min-h-screen max-lg:min-h-dvh">
<div x-show="sidebarOpen" x-cloak class="fixed inset-0 z-30 bg-black/50 lg:hidden" @click="sidebarOpen = false"></div>
<aside x-data="{ ready: false }" x-init="requestAnimationFrame(() => ready = true)"
class="fixed inset-y-0 left-0 z-40 w-64 -translate-x-full transform lg:translate-x-0"
:class="{ '!translate-x-0': sidebarOpen, 'transition-transform': ready }">
@include('partials.sidebar')
</aside>
<div class="flex min-h-screen flex-col min-w-0 lg:pl-64">
@include('partials.topbar', ['heading' => $heading ?? $title])
<main class="flex-1 p-4 pb-24 sm:p-6 lg:pb-6">
@include('partials.flash')
{{ $slot }}
</main>
</div>
</div>
@auth
@php
$navUser = auth()->user();
$navInitials = collect(explode(' ', trim((string) $navUser?->name)))
->filter()->take(2)
->map(fn ($part) => strtoupper(substr($part, 0, 1)))
->implode('');
$navAvatarUrl = $navUser && method_exists($navUser, 'avatarUrl')
? $navUser->avatarUrl()
: ($navUser?->avatar_url ?? null);
@endphp
@include('partials.mobile-bottom-nav', [
'homeUrl' => route('pos.dashboard'),
'homeActive' => request()->routeIs('pos.dashboard'),
'searchUrl' => route('pos.products.index'),
'searchActive' => request()->routeIs('pos.products.*'),
'notificationsUrl' => route('notifications.index'),
'notificationsActive' => request()->routeIs('notifications.*'),
'unreadUrl' => route('notifications.unread'),
'profileActive' => false,
'profileName' => $navUser?->name ?? '',
'profileSubtitle' => $navUser?->email ?? '',
'profileMenuItems' => \App\Support\UserProfileMenu::items($navUser),
'avatarUrl' => $navAvatarUrl,
'initials' => $navInitials !== '' ? $navInitials : 'U',
])
@endauth
@include('partials.afia')
@include('partials.confirm-prompt')
@include('partials.payment-checkout-host')
</body>
</html>