@extends('layouts.public') @section('content') @php /** * @var array $user * @var array $sessions live browsers for this account, current one flagged * @var bool $twoFactorOn * @var array|null $pendingPhone a new number waiting on a texted code, if any */ $sessions = $sessions ?? []; $twoFactorOn = (bool) ($twoFactorOn ?? false); $phonePend = is_array($pendingPhone ?? null) ? $pendingPhone : null; @endphp

{{ t_raw('account.my_account') }}

@php /* The page's messages belong UNDER its title band, inside the page the reader is looking at — not floating above it. getFlashes() consumes, so the layout's own call further out finds nothing and does not draw it twice. */ @endphp
@partial('flash')
@partial('account-nav')
@php /* M39. Shown only while a code is outstanding — a card that appears BECAUSE a number is waiting, in the same .qm-card anatomy as its neighbours, and the code input is auth/verify.php's field verbatim (one-time-code, six digits). Confirm is FIRST in the row, and that is deliberate rather than sloppy: a browser submits a form on Enter using the first submit button in the markup, and this is a field people finish with Enter. With Resend first, every keyboard user would land on the 60-second cooldown instead of confirming. Cancel is a form of its own — a different operation on a different thing — matching the per-device sign-out form already in this view. */ @endphp @if ($phonePend) @endif @php /* Second factor. A card of its own rather than a field inside the profile form, because switching it on is a handshake with an app rather than a value to save — and the profile form's Save must never be able to change it by accident. Same .qm-card anatomy as the block above. */ @endphp @php /* Signed-in devices. The list is the new part; ending them is Auth::revokeOtherSessions(), which already existed and is unchanged. */ @endphp
@endsection