From 86af6a43613310ea878816f81152d35778a3fdbc Mon Sep 17 00:00:00 2001 From: isaacclad Date: Sun, 28 Jun 2026 12:45:59 +0000 Subject: [PATCH] Sync mobile profile wallet card and 24h session idle timeout. 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 --- .env.example | 6 +++++- config/session.php | 2 +- .../partials/mobile-bottom-nav.blade.php | 20 ++++++++++++++++++- .../views/partials/wallet-widget.blade.php | 11 ++++++++-- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index dee7d5f..0a3abfe 100644 --- a/.env.example +++ b/.env.example @@ -28,7 +28,8 @@ DB_USERNAME=ladill_hosting DB_PASSWORD= SESSION_DRIVER=database -SESSION_LIFETIME=120 +# Idle web session length in minutes (1440 = 24 hours of inactivity). +SESSION_LIFETIME=1440 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=.ladill.com @@ -47,6 +48,9 @@ BILLING_API_KEY_HOSTING= IDENTITY_API_URL=https://ladill.com/api IDENTITY_API_KEY_HOSTING= +# Platform admin API (account.ladill.com → hosting.ladill.com) +PLATFORM_API_KEY_HOSTING= + # Ladill Domains API (owned-domain picker; domains.ladill.com) DOMAINS_API_URL=https://domains.ladill.com/api DOMAINS_API_KEY_HOSTING= diff --git a/config/session.php b/config/session.php index 5b541b7..570bbab 100644 --- a/config/session.php +++ b/config/session.php @@ -32,7 +32,7 @@ return [ | */ - 'lifetime' => (int) env('SESSION_LIFETIME', 120), + 'lifetime' => (int) env('SESSION_LIFETIME', 1440), 'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false), diff --git a/resources/views/partials/mobile-bottom-nav.blade.php b/resources/views/partials/mobile-bottom-nav.blade.php index 499483f..9cea189 100644 --- a/resources/views/partials/mobile-bottom-nav.blade.php +++ b/resources/views/partials/mobile-bottom-nav.blade.php @@ -15,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
@@ -119,8 +126,19 @@
@endif + @if ($showWalletInSheet) +
+

Billing

+ @include('partials.wallet-widget', [ + 'onNavigate' => 'profileOpen = false', + 'class' => 'mx-0', + ]) +
+ @endif + @include('partials.user-profile-menu', [ - 'items' => $profileMenuItems, + 'items' => $sheetMenuItems, 'variant' => 'sheet', 'onNavigate' => 'profileOpen = false', ]) diff --git a/resources/views/partials/wallet-widget.blade.php b/resources/views/partials/wallet-widget.blade.php index 8661874..095b2f4 100644 --- a/resources/views/partials/wallet-widget.blade.php +++ b/resources/views/partials/wallet-widget.blade.php @@ -1,12 +1,19 @@ {{-- Wallet balance peek (links to the account wallet on account.ladill.com). --}} @php + $onNavigate = $onNavigate ?? null; + $class = trim((string) ($class ?? 'mx-1')); $balanceRoute = (string) config('billing.wallet_balance_route', 'wallet.balance'); $balanceUrl = \Illuminate\Support\Facades\Route::has($balanceRoute) ? route($balanceRoute) : null; + $walletUrl = \Illuminate\Support\Facades\Route::has('user.wallet.index') + ? route('user.wallet.index') + : (function_exists('ladill_account_url') ? ladill_account_url('/wallet') : '#'); @endphp @if ($balanceUrl) - + @wallet-balance-refresh.window="load()" + @if ($onNavigate) @click="{{ $onNavigate }}" @endif + class="{{ $class }} flex items-center justify-between gap-3 rounded-xl border border-slate-100 bg-gradient-to-r from-indigo-50 to-slate-50 px-3 py-2.5 transition hover:border-indigo-200 hover:from-indigo-100/70">