@php
use GletraChatBox\App\Support\SocialVideoParser;
use GletraChatBox\App\Models\Status as StatusModel;
$msgType = $message->effectiveType();
$meta = $message->metadata ?? [];
$isStatusReply = $msgType === 'status_reply' || !empty($meta['status_id']);
$isSent = $message->sender_id == auth()->id();
$socialVideos = ($msgType === 'text' && $message->message)
? SocialVideoParser::collect($message->message)
: [];
$plainMessageText = $socialVideos
? SocialVideoParser::stripSocialUrls($message->message ?? '')
: ($message->message ?? '');
@endphp
@if($isStatusReply)
@php
$statusMeta = $meta;
$statusOwnerName = $statusMeta['status_owner_name'] ?? 'Status';
$isReaction = ($statusMeta['status_interaction'] ?? 'reply') === 'reaction';
$statusLabel = $isReaction
? ($isSent ? '@ Reacted to '.$statusOwnerName."'s status" : '@ Reacted to your status')
: ($isSent
? '@ Reply to '.$statusOwnerName."'s status"
: '@ Reply to your status');
$statusType = $statusMeta['status_type'] ?? 'text';
$statusSnippet = match ($statusType) {
'image' => 'Photo',
'video' => 'Video',
'audio' => 'Voice status',
default => Str::limit($statusMeta['status_content'] ?? 'Text status', 80),
};
$statusPreviewUrl = $statusMeta['status_preview_url'] ?? null;
if (! $statusPreviewUrl && ! empty($statusMeta['status_id'])) {
$statusModel = StatusModel::query()->find($statusMeta['status_id']);
if ($statusModel) {
$statusPreviewUrl = $statusModel->replyPreviewUrl();
}
}
if (! $statusPreviewUrl && $statusType === 'image' && ! empty($statusMeta['status_media_url'])) {
$statusPreviewUrl = $statusMeta['status_media_url'];
}
@endphp
@if(!empty($message->sticker_id))
@elseif(!empty($message->gif_url))
@endif
@if($message->message)
{{ Str::limit($meta['description'], 120) }}
@endif {{ $meta['url'] ?? '' }}{{ $plainMessageText }}
@endif