diff --git a/app/Http/Livewire/DislikeButton.php b/app/Http/Livewire/DislikeButton.php index a1260b440..e51b7c265 100644 --- a/app/Http/Livewire/DislikeButton.php +++ b/app/Http/Livewire/DislikeButton.php @@ -23,10 +23,13 @@ class DislikeButton extends Component public ?\Illuminate\Contracts\Auth\Authenticatable $user = null; - final public function mount(Post $post): void + public int $dislikesCount; + + final public function mount(Post $post, int $dislikesCount): void { $this->user = auth()->user(); $this->post = $post; + $this->dislikesCount = $dislikesCount; } final public function store(): void @@ -50,6 +53,8 @@ class DislikeButton extends Component $new->dislike = 1; $new->save(); + $this->dislikesCount += 1; + $this->dispatchBrowserEvent('success', ['type' => 'success', 'message' => 'Your Dislike Was Successfully Applied!']); } diff --git a/app/Http/Livewire/LikeButton.php b/app/Http/Livewire/LikeButton.php index d3a3e8bae..34b7c284f 100644 --- a/app/Http/Livewire/LikeButton.php +++ b/app/Http/Livewire/LikeButton.php @@ -23,10 +23,13 @@ class LikeButton extends Component public ?\Illuminate\Contracts\Auth\Authenticatable $user = null; - final public function mount(Post $post): void + public int $likesCount; + + final public function mount(Post $post, int $likesCount): void { $this->user = auth()->user(); $this->post = $post; + $this->likesCount = $likesCount; } final public function store(): void @@ -50,6 +53,8 @@ class LikeButton extends Component $new->like = 1; $new->save(); + $this->likesCount += 1; + $this->dispatchBrowserEvent('success', ['type' => 'success', 'message' => 'Your Like Was Successfully Applied!']); } diff --git a/app/Http/Livewire/TopicPostSearch.php b/app/Http/Livewire/TopicPostSearch.php index 5babe948d..3ae829db8 100644 --- a/app/Http/Livewire/TopicPostSearch.php +++ b/app/Http/Livewire/TopicPostSearch.php @@ -42,10 +42,7 @@ class TopicPostSearch extends Component return Post::query() ->select('posts.*') ->with('user', 'user.group', 'user.topics', 'user.posts', 'topic', 'tips') - ->withCount([ - 'likes' => fn ($query) => $query->where('like', '=', 1), - 'likes as dislike_count' => fn ($query) => $query->where('dislike', '=', 1), - ]) + ->withCount(['likes', 'dislikes']) ->withSum('tips', 'cost') ->where('topic_id', '=', $this->topic->id) ->join('topics', 'topics.id', '=', 'posts.topic_id') diff --git a/resources/views/components/forum/post.blade.php b/resources/views/components/forum/post.blade.php index a6e61a593..9be1f8c0b 100644 --- a/resources/views/components/forum/post.blade.php +++ b/resources/views/components/forum/post.blade.php @@ -55,10 +55,10 @@
  • - @livewire('like-button', ['post' => $post], key('like-'.$post->id)) + @livewire('like-button', ['post' => $post, 'likesCount' => $post->likes_count], key('like-'.$post->id))
  • - @livewire('dislike-button', ['post' => $post], key('dislike-'.$post->id)) + @livewire('dislike-button', ['post' => $post, 'dislikesCount' => $post->dislikes_count], key('dislike-'.$post->id))
  • @endif - {{ $post->dislike_count }} + {{ $dislikesCount }} diff --git a/resources/views/livewire/like-button.blade.php b/resources/views/livewire/like-button.blade.php index 8fabdfc57..79172a6a4 100644 --- a/resources/views/livewire/like-button.blade.php +++ b/resources/views/livewire/like-button.blade.php @@ -8,5 +8,5 @@ @else @endif - +