diff --git a/app/Actions/CreateOrGetInbox.php b/app/Actions/CreateOrGetInbox.php new file mode 100644 index 0000000..3c459b2 --- /dev/null +++ b/app/Actions/CreateOrGetInbox.php @@ -0,0 +1,22 @@ + + */ + public function execute(User $recipient, User $sender): array + { + $chatExists = DB::table('inbox_user as sender') + ->join('inbox_user as recipient', 'sender.inbox_id', '=', 'recipient.inbox_id') + ->where('sender.user_id', $sender->id) + ->where('recipient.user_id', $recipient->id) + ->get(); + + } +} diff --git a/app/Http/Controllers/ChatController.php b/app/Http/Controllers/ChatController.php new file mode 100644 index 0000000..21ead6a --- /dev/null +++ b/app/Http/Controllers/ChatController.php @@ -0,0 +1,22 @@ +with('recipient', $recipient); + } +} diff --git a/resources/views/components/chat/message-box.blade.php b/resources/views/components/chat/message-box.blade.php new file mode 100644 index 0000000..a37d70d --- /dev/null +++ b/resources/views/components/chat/message-box.blade.php @@ -0,0 +1,14 @@ +@props(['recipient', 'chats' => []]) + +
+
+ @forelse($chats as $chat) + {{$chat->text}} + @empty +
+

No Messages Found!

+
+ @endforelse +
+ +
diff --git a/resources/views/components/chat/sidebar-item.blade.php b/resources/views/components/chat/sidebar-item.blade.php index 791c47d..6f78c4f 100644 --- a/resources/views/components/chat/sidebar-item.blade.php +++ b/resources/views/components/chat/sidebar-item.blade.php @@ -1,5 +1,5 @@ -@props(['avatar', 'name', 'status' => 'inactive', 'message' => '']) - +@props(['avatar', 'name', 'status' => 'inactive', 'message' => '', 'link' => '']) + {{$avatar}}
diff --git a/resources/views/dashboards/user/chat.blade.php b/resources/views/dashboards/user/chat.blade.php new file mode 100644 index 0000000..11295a2 --- /dev/null +++ b/resources/views/dashboards/user/chat.blade.php @@ -0,0 +1,16 @@ + + + + + + + + @if(isset($recipient)) + + @else +
+

Start a chat !

+
+ @endif + +
diff --git a/resources/views/dashboards/user/chat/index.blade.php b/resources/views/dashboards/user/chat/index.blade.php deleted file mode 100644 index fbb8fb8..0000000 --- a/resources/views/dashboards/user/chat/index.blade.php +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - -
-
- Hi - Hello ! - Hi - Hi - Hello ! - Hello ! - Hi - Hello ! - Hi - Hello ! - Hi - Hello ! - Hi - Hello ! - Hi - Hello ! - Hi - Hello ! - Hi - Hello ! - Hi - Hello ! - Hi - Hello ! - Hi - Hello ! -
- -
-
diff --git a/routes/web.php b/routes/web.php index 76e227c..3457b10 100644 --- a/routes/web.php +++ b/routes/web.php @@ -10,26 +10,14 @@ require __DIR__.'/web/interaction.php'; require __DIR__.'/web/customer.php'; require __DIR__.'/web/admin.php'; +require __DIR__.'/web/chat.php'; Route::get('/', HomeController::class)->name('home'); Route::get('/explore', ExplorePageController::class)->name('explore'); Route::post('/contact', ContactController::class)->name('contact'); -Route::get('/test-openssl', function () { - $res = openssl_pkey_new([ - 'curve_name' => 'prime256v1', - 'private_key_type' => OPENSSL_KEYTYPE_EC, - ]); - - if ($res === false) { - return 'ERROR: '.openssl_error_string(); // likely "error:02001003:system library:fopen:No such process" - } - - return 'SUCCESS: OpenSSL is configured correctly.'; -}); - /** - * This routes are accessed by JS XHR requests, and is loaded here cause + * This route is accessed by JS XHR requests, and is loaded here cause * we do not want to use sanctum for web requests */ // ------------- API Routes ------------ diff --git a/routes/web/chat.php b/routes/web/chat.php new file mode 100644 index 0000000..4f38a4c --- /dev/null +++ b/routes/web/chat.php @@ -0,0 +1,6 @@ +name('chat'); +Route::get('/chat/{recipient}', [ChatController::class, 'show'])->name('chat.show'); diff --git a/routes/web/customer.php b/routes/web/customer.php index 2fdd155..db1c309 100644 --- a/routes/web/customer.php +++ b/routes/web/customer.php @@ -9,5 +9,4 @@ ->middleware([HasRole::class.':'.UserTypes::User->value, 'auth']) ->group(function () { Route::resource('profile', UserProfileController::class)->except('index', 'store', 'create'); - Route::get('/chat', fn () => view('dashboards.user.chat.index')); });