@php $meActive = request()->routeIs('signal-plan.*') || request()->routeIs('thoughts.*') || request()->routeIs('emotions.*') || request()->routeIs('ik.*') || request()->routeIs('sensory-profile.*') || request()->routeIs('me.mbti*') || request()->routeIs('energy-agenda.*'); @endphp
{{ __('Others') }}
{{-- Community dropdown: Care providers + Groups (auth) + Events --}}
@php $communityActive = request()->routeIs('pro.*') || request()->routeIs('groups.*') || request()->routeIs('events.*') || request()->routeIs('community.*'); @endphp
@auth
{{-- Chat — premium only feature, visible to all auth users (redirects to upgrade if needed) --}}
@auth
@php
try {
$__uid = auth()->id();
$__user = auth()->user();
$__chatUnread = \App\Models\Conversation::where(
fn ($q) => $q->where('user_one_id', $__uid)->orWhere('user_two_id', $__uid)
)
->where(fn ($q) => $q
// Only count conversations with an active mutual like
->whereRaw("EXISTS (
SELECT 1 FROM likes la
JOIN likes lb
ON lb.from_user_id = la.to_user_id
AND lb.to_user_id = ?
WHERE la.from_user_id = ?
AND la.to_user_id = IF(conversations.user_one_id = ?, conversations.user_two_id, conversations.user_one_id)
)", [$__uid, $__uid, $__uid])
// OR the other party is a PRO with open messaging
->orWhereRaw("EXISTS (
SELECT 1 FROM users u
WHERE u.id = IF(conversations.user_one_id = ?, conversations.user_two_id, conversations.user_one_id)
AND u.is_pro = 1
AND u.allow_messages = 1
)", [$__uid])
)
->get()
->sum(fn ($c) => $c->unreadCountFor($__user));
} catch (\Throwable) {
$__chatUnread = 0;
}
@endphp
@if ($__chatUnread > 0)
{{ $__chatUnread > 9 ? '9+' : $__chatUnread }}
@elseif($__chatUnread === 0)
{{-- Placeholder so JS can insert/remove without re-rendering --}}
@endif
@endauth
{{ __('Chat') }}
@endauth