From f3d5be6a80508303e0c57e6b389fe08fb1c27669 Mon Sep 17 00:00:00 2001 From: Daan Meijer Date: Mon, 22 Jun 2026 13:55:38 +0200 Subject: [PATCH] better target for message notifications --- app/Http/Controllers/DynamicController.php | 4 ++-- app/Http/Controllers/LedgerController.php | 4 ++-- app/Services/ActivityService.php | 5 +++++ resources/js/components/Chat.vue | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/DynamicController.php b/app/Http/Controllers/DynamicController.php index f859cea..da2d55a 100644 --- a/app/Http/Controllers/DynamicController.php +++ b/app/Http/Controllers/DynamicController.php @@ -62,7 +62,7 @@ class DynamicController extends Controller 'dynamic' => new DynamicResource($dynamic), 'ledgers' => LedgerResource::collection($dynamic->ledgers), 'participants' => UserResource::collection($dynamic->participants), - 'messages' => MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(20)), + 'messages' => MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(10)), 'can' => [ 'update' => $request->user()->can('update', $dynamic), ], @@ -73,7 +73,7 @@ class DynamicController extends Controller { $this->authorize('view', $dynamic); - return MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(20)); + return MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(10)); } /** diff --git a/app/Http/Controllers/LedgerController.php b/app/Http/Controllers/LedgerController.php index ee04fc7..6275250 100644 --- a/app/Http/Controllers/LedgerController.php +++ b/app/Http/Controllers/LedgerController.php @@ -87,7 +87,7 @@ class LedgerController extends Controller 'ledger' => new LedgerResource($ledger), 'mutations' => MutationResource::collection($ledger->mutations), 'participants' => UserResource::collection($dynamic->participants), - 'messages' => MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(20)), + 'messages' => MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(10)), 'can' => [ 'update' => $request->user()->can('update', $ledger), 'close' => $request->user()->can('close', $ledger), @@ -99,7 +99,7 @@ class LedgerController extends Controller { $this->authorize('view', $ledger); - return MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(20)); + return MessageResource::collection($dynamic->chat->messages()->with(['user', 'media'])->latest()->paginate(10)); } /** diff --git a/app/Services/ActivityService.php b/app/Services/ActivityService.php index e653f47..2ce189d 100644 --- a/app/Services/ActivityService.php +++ b/app/Services/ActivityService.php @@ -177,6 +177,11 @@ class ActivityService return route('dynamics.ledgers.show', [$entity->dynamic->uuid, $entity->uuid]); } + if ($entity instanceof Message) { + $subject = $entity->subject; + return $this->getUrlForEntity($subject); + } + return ''; } diff --git a/resources/js/components/Chat.vue b/resources/js/components/Chat.vue index 5879203..fe4a744 100644 --- a/resources/js/components/Chat.vue +++ b/resources/js/components/Chat.vue @@ -104,6 +104,7 @@ function formatTimestamp(isoString: string): { full: string; time: string } { const participantsById = computed(() => { const list = props.participants || []; + return list.reduce( (acc, p) => { acc[p.id] = p;