Files
ladill-care/resources/views/components/app-layout.blade.php
T
isaaccladandCursor eaf6da5cdb
Deploy Ladill Care / deploy (push) Successful in 1m0s
Align Care header with other Ladill apps.
Add Afia and notifications to the top bar, remove the duplicate desktop page
title, wire notification and AI routes, and fix mobile nav notification links.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:53:34 +00:00

62 lines
3.0 KiB
PHP

@props(['title' => 'Ladill Care', 'heading' => null])
<!DOCTYPE html>
<html lang="en" class="h-full">
<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 Care</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 text-slate-900" x-data="{ sidebarOpen: false }">
@include('partials.boot-splash')
<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('care.dashboard'),
'homeActive' => request()->routeIs('care.dashboard'),
'searchUrl' => route('care.patients.index'),
'searchActive' => request()->routeIs('care.patients.*'),
'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.wallet-topup-modal', ['openOnLoad' => (bool) session('topup_required')])
</body>
</html>