Sync mobile profile wallet card and 24h session idle timeout.
Deploy Ladill Link / deploy (push) Successful in 36s

Show wallet balance prominently in the mobile profile bottom sheet with refresh
on open; align session lifetime with the platform default.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-06-28 12:46:20 +00:00
co-authored by Cursor
parent cdb8d448f6
commit 2d89f6ef67
4 changed files with 43 additions and 11 deletions
@@ -1,5 +1,9 @@
@php
$gridCols = !empty($centerCompose) ? 'grid-cols-5' : 'grid-cols-4';
$showSearch = isset($searchUrl) && $searchUrl !== null && $searchUrl !== '#';
$gridCols = match (true) {
! empty($centerCompose) => $showSearch ? 'grid-cols-5' : 'grid-cols-4',
default => $showSearch ? 'grid-cols-4' : 'grid-cols-3',
};
$avatarUrl = $avatarUrl ?? null;
$initials = $initials ?? 'U';
$notificationsUrl = $notificationsUrl ?? '#';
@@ -11,6 +15,13 @@
if ($profileMenuItems === [] && $profileUrl !== '#') {
$profileMenuItems = [['type' => 'link', 'label' => 'Profile', 'href' => $profileUrl]];
}
$walletBalanceRoute = (string) config('billing.wallet_balance_route', 'wallet.balance');
$showWalletInSheet = \Illuminate\Support\Facades\Route::has($walletBalanceRoute)
|| collect($profileMenuItems)->contains(fn (array $item): bool => ($item['type'] ?? '') === 'wallet');
$sheetMenuItems = array_values(array_filter(
$profileMenuItems,
fn (array $item): bool => ($item['type'] ?? 'link') !== 'wallet'
));
$navActive = fn (bool $active) => $active ? 'text-indigo-600' : 'text-slate-600';
@endphp
<div x-data="{ profileOpen: false }" class="lg:hidden">
@@ -23,11 +34,13 @@
<span class="text-[10px] font-medium">Home</span>
</a>
<a href="{{ $searchUrl }}"
class="flex flex-col items-center justify-center gap-1 px-2 py-2 transition hover:text-slate-900 {{ $navActive($searchActive ?? false) }}">
<svg class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"/></svg>
<span class="text-[10px] font-medium">Search</span>
</a>
@if ($showSearch)
<a href="{{ $searchUrl }}"
class="flex flex-col items-center justify-center gap-1 px-2 py-2 transition hover:text-slate-900 {{ $navActive($searchActive ?? false) }}">
<svg class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"/></svg>
<span class="text-[10px] font-medium">Search</span>
</a>
@endif
@if (!empty($centerCompose))
<div class="flex items-center justify-center">
@@ -113,8 +126,19 @@
</div>
@endif
@if ($showWalletInSheet)
<div class="border-b border-slate-100 px-4 py-4"
x-effect="profileOpen && window.dispatchEvent(new CustomEvent('wallet-balance-refresh'))">
<p class="mb-2 text-sm font-medium text-slate-700">Billing</p>
@include('partials.wallet-widget', [
'onNavigate' => 'profileOpen = false',
'class' => 'mx-0',
])
</div>
@endif
@include('partials.user-profile-menu', [
'items' => $profileMenuItems,
'items' => $sheetMenuItems,
'variant' => 'sheet',
'onNavigate' => 'profileOpen = false',
])