���Root Mod By V1rus_Alfa
User / IP
:
216.73.217.78
Host / Server
:
195.214.235.115 / npln.ir
System
:
Linux damavand.pws-dns.net 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Command
|
Upload
|
Mass Deface
|
Create
:
/
home2
/
cutunixc
/
repositories
/
cutunix
/
resources
/
views
/
livewire
/
shared
/
Viewing: chat.blade.php
<div> <div class="flex flex-col h-[85vh] bg-white shadow-lg rounded-lg overflow-hidden mx-auto relative mt-[5rem]" @if($currentUri !== 'admin/messages/all') wire:poll @endif x-data="{sidebarOpen: false}" > <section class="header-container flex items-center justify-start h-16 shadow-lg p-2 relative text-right"> <button @click="sidebarOpen = !sidebarOpen" class="p-1 bg-white rounded-lg shadow-lg" > <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16m-7 6h7"/> </svg> </button> </section> <section class="sidebar-container flex w-5/12 absolute h-full mt-16 p-2 shadow-lg translate-x-0 transition-all bg-gray-100" :class="{'translate-x-full': !sidebarOpen, 'translate-x-0': sidebarOpen}" > <ul class="w-full"> @foreach($subjects as $key => $subject) <li class="p-2"> <a @if($subject->subjectable_type == \App\Models\Order::class) href="{{ route('chat-with-customers', ['order' => $subject->subjectable_id]) }}" wire:navigate @endif > {{ $subject->subjectable?->name }} </a> </li> @endforeach </ul> </section> @if($currentUri == 'admin/messages/all') <div class="flex-1 p-4 overflow-y-auto justify-center text-center"> <p class="mt-28 text-white bg-gray-500 p-2 rounded mx-auto w-4/12"> برای ارسال پیام یک چت را انتخاب کنید </p> </div> @else <div class="flex-1 p-4 overflow-y-auto justify-center text-center" id="messages_container"> @if(!is_null($grouped_messages)) @foreach($grouped_messages as $date => $group) <div class="text-center my-5 p-2 rounded bg-gray-500 mx-auto text-white w-2/12 bold"> {{ \Morilog\Jalali\Jalalian::fromCarbon(\Carbon\Carbon::parse($date))->format('Y/m/d') }} </div> @foreach($group as $key => $message) <div class="flex @if($message->senderable_id == auth()->id()) justify-start @else justify-end @endif"> <p class="rounded @if($message->senderable_id == auth()->id()) bg-gray-300 @else bg-gray-100 @endif text-gray-700 bold my-3 p-2 w-6/12 text-wrap text-right flex justify-between items-center"> <span class="text-wrap w-9/12"> {{ $message->text }} </span> <span class="text-[9px]"> {{ $message->created_at->format('H:i') }} </span> </p> </div> @endforeach @endforeach @endif </div> @endif @if($currentUri != 'admin/messages/all') <div class="flex items-center gap-2 px-3 justify-center mb-2"> <!-- File Upload Button --> <div class="w-1/12 flex items-center justify-center"> <label for="file-upload" class="bg-gray-200 rounded-full hover:bg-gray-300 cursor-pointer p-2"> <svg width="15px" height="15px" viewBox="0 0 28 28" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="" xmlns:sketch=""> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> <g id="Icon-Set" sketch:type="MSLayerGroup" transform="translate(-258.000000, -154.000000)" fill="#000000"> <path d="M284.562,164.181 L270.325,178.26 C267.966,180.593 264.141,180.593 261.782,178.26 C259.423,175.928 259.423,172.146 261.782,169.813 L274.596,157.141 C276.168,155.586 278.718,155.586 280.291,157.141 C281.863,158.696 281.863,161.218 280.291,162.772 L267.477,175.444 C266.691,176.222 265.416,176.222 264.629,175.444 C263.843,174.667 263.843,173.406 264.629,172.628 L276.02,161.365 L274.596,159.957 L263.206,171.221 C261.633,172.775 261.633,175.297 263.206,176.853 C264.778,178.407 267.328,178.407 268.901,176.852 L281.714,164.181 C284.073,161.849 284.074,158.065 281.715,155.733 C279.355,153.4 275.531,153.4 273.172,155.733 L259.646,169.108 L259.696,169.157 C257.238,172.281 257.455,176.797 260.358,179.668 C263.262,182.539 267.828,182.754 270.987,180.323 L271.036,180.372 L285.986,165.589 L284.562,164.181" id="attachment-2" sketch:type="MSShapeGroup"> </path> </g> </g> </svg> </label> <input type="file" id="file-upload" class="hidden" wire:model="file"/> </div> <!-- Message Input --> <div class="w-10/12 flex items-center justify-center h-auto"> <textarea data-line-characters-count="115" onkeyup="textContainerHeightIncreaser(event.target)" id="message_text" placeholder="پیام" class="flex-1 p-2 ml-2 rounded-lg border border-gray-300 focus:outline-none focus:border-[#FEB139] resize-none text-wrap overflow-hidden" wire:model.live="message" wire:keydown.enter.prevent="sendMessage" onkeydown="if(event.code === 'Enter') setMessageContainerScrollToBottomOfPage();" rows="1" ></textarea> </div> <!-- Send Button --> <div class="w-1/12 flex items-center justify-center"> <button class="p-2 bg-[#FEB139] text-white rounded-full hover:bg-[#e09e30] w-7 h-7 flex items-center justify-center" wire:click="sendMessage"> <i class='bx bxs-send -rotate-180'></i> </button> </div> </div> @endif </div> </div> @section('scripts') <script> document.addEventListener("livewire:init", function (event) { setMessageContainerScrollToBottomOfPage(); textContainerHeightIncreaser(document.getElementById('message_text')) }); function setMessageContainerScrollToBottomOfPage() { let messagesContainerElement = document.getElementById('messages_container'); messagesContainerElement.scrollTo(0, messagesContainerElement.scrollHeight); } function textContainerHeightIncreaser(target) { // let textContainerElement = target; // let textContainerCharactersCount = textContainerElement.value.length + 1; // let textContainerCharactersPerLine = textContainerElement.getAttribute('data-line-characters-count'); // let linesCount = 1; // // if (textContainerCharactersCount > textContainerCharactersPerLine) { // linesCount = Math.ceil(textContainerCharactersCount / textContainerCharactersPerLine) + 1; // textContainerElement.style.height = linesCount * 40 + 'px'; // } } </script> @endsection
Coded With 💗 by
0x6ick Mod By V1rus_Alfa