Initial commit

This commit is contained in:
Ronald Huynen
2026-03-23 21:37:59 +01:00
commit 2547717edb
2193 changed files with 972171 additions and 0 deletions

View File

@@ -0,0 +1,114 @@
@use('Namu\WireChat\Facades\WireChat')
@php
$isSameAsNext = ($message?->sendable_id === $nextMessage?->sendable_id) && ($message?->sendable_type === $nextMessage?->sendable_type);
$isNotSameAsNext = !$isSameAsNext;
$isSameAsPrevious = ($message?->sendable_id === $previousMessage?->sendable_id) && ($message?->sendable_type === $previousMessage?->sendable_type);
$isNotSameAsPrevious = !$isSameAsPrevious;
@endphp
<div
{{-- We use style here to make it easy for dynamic and safe injection --}}
@style([
'background-color:var(--wc-brand-primary)' => $belongsToAuth==true
])
@class([
'flex flex-wrap max-w-fit text-[15px] border border-gray-200/40 dark:border-none rounded-xl p-2.5 flex flex-col text-black bg-[#f6f6f8fb]',
'text-white' => $belongsToAuth, // Background color for messages sent by the authenticated user
'bg-[var(--wc-light-secondary)] dark:bg-[var(--wc-dark-secondary)] dark:text-white' => !$belongsToAuth,
// Message styles based on position and ownership
// RIGHT
// First message on RIGHT
'rounded-br-md rounded-tr-2xl' => ($isSameAsNext && $isNotSameAsPrevious && $belongsToAuth),
// Middle message on RIGHT
'rounded-r-md' => ($isSameAsPrevious && $belongsToAuth),
// Standalone message RIGHT
'rounded-br-xl rounded-r-xl' => ($isNotSameAsPrevious && $isNotSameAsNext && $belongsToAuth),
// Last Message on RIGHT
'rounded-br-2xl' => ($isNotSameAsNext && $belongsToAuth),
// LEFT
// First message on LEFT
'rounded-bl-md rounded-tl-2xl' => ($isSameAsNext && $isNotSameAsPrevious && !$belongsToAuth),
// Middle message on LEFT
'rounded-l-md' => ($isSameAsPrevious && !$belongsToAuth),
// Standalone message LEFT
'rounded-bl-xl rounded-l-xl' => ($isNotSameAsPrevious && $isNotSameAsNext && !$belongsToAuth),
// Last message on LEFT
'rounded-bl-2xl' => ($isNotSameAsNext && !$belongsToAuth),
])
>
@if (!$belongsToAuth && $isGroup)
<div
@class([
'shrink-0 font-medium text-black',
// Hide avatar if the next message is from the same user
'hidden' => $isSameAsPrevious
])>
{{ $message?->sendable?->display_name }}
</div>
@endif
@php
// Check if the body is a valid internal URL so a href link can be rendered
$appUrl = rtrim(config('app.url'), '/');
$body = trim($message?->body ?? '');
$isInternalUrl = false;
if (filter_var($body, FILTER_VALIDATE_URL)) {
$isInternalUrl = str_starts_with($body, $appUrl);
}
// Check if body is a transaction statement URL
$transactionShowPattern = '#^' . preg_quote($appUrl, '#') . '/[a-z]{2}/statement/\d+$#';
$isTransactionLink = preg_match($transactionShowPattern, $body);
@endphp
@if ($isTransactionLink)
<pre class="whitespace-pre-line tracking-normal text-sm border pt-3 border-white rounded-lg md:text-base dark:text-white lg:tracking-normal"
style="font-family: inherit;">
<a href="{{ $body }}" class="underline">
<div class="flex flex-col items-center gap-0 w-fit max-h-fit">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-8">
<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 3.75 9.375v-4.5ZM3.75 14.625c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5a1.125 1.125 0 0 1-1.125-1.125v-4.5ZM13.5 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 13.5 9.375v-4.5Z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M6.75 6.75h.75v.75h-.75v-.75ZM6.75 16.5h.75v.75h-.75v-.75ZM16.5 6.75h.75v.75h-.75v-.75ZM13.5 13.5h.75v.75h-.75v-.75ZM13.5 19.5h.75v.75h-.75v-.75ZM19.5 13.5h.75v.75h-.75v-.75ZM19.5 19.5h.75v.75h-.75v-.75ZM16.5 16.5h.75v.75h-.75v-.75Z" />
</svg>
<span class="text-center mx-6">
{{ __('View transaction') }}
</span>
</div>
</a>
</pre>
@else
<pre class="whitespace-pre-line tracking-normal text-sm md:text-base dark:text-white lg:tracking-normal"
style="font-family: inherit;">
@if ($isInternalUrl)
<a href="{{ $body }}" class="underline">
{{ $body }}
</a>
@else
{{ $body }}
@endif
</pre>
@endif
{{-- Display the created time based on different conditions --}}
<span
@class(['text-[11px] ml-auto ', 'text-gray-700 dark:text-gray-300' => !$belongsToAuth,'text-gray-100' => $belongsToAuth])>
@php
// If the message was created today, show only the time (e.g., 1:00 AM)
echo $message?->created_at->format('H:i');
@endphp
</span>
</div>