Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

laravelio/laravel.io

2497 stars
3 code files
View laravelio/laravel.io on GitHub

app/Http/Livewire/LikeReply.php

Open in GitHub
use App\Jobs\LikeReply as LikeReplyJob;
use App\Jobs\UnlikeReply as UnlikeReplyJob;
use App\Models\Reply;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Support\Facades\Auth;
use Livewire\Component;
 
final class LikeReply extends Component
{
use DispatchesJobs;
 
public $reply;
 
public function mount(Reply $reply): void
{
$this->reply = $reply;
}
 
public function toggleLike(): void
{
if (Auth::guest()) {
return;
}
 
if ($this->reply->isLikedBy(Auth::user())) {
$this->dispatchNow(new UnlikeReplyJob($this->reply, Auth::user()));
} else {
$this->dispatchNow(new LikeReplyJob($this->reply, Auth::user()));
}
}
}

resources/views/livewire/like-reply.blade.php

Open in GitHub
<div class="thread-info-likes">
@if (Auth::guest())
<div class="text-gray-600 px-4 py-2 border-r inline-block">
<span class="text-2xl mr-1">?</span>
{{ count($this->reply->likes()) }}
</div>
@else
<button type="button" wire:click="toggleLike" class="text-lio-600 px-4 py-2 border-r">
<span class="text-2xl mr-1">?</span>
{{ count($this->reply->likes()) }}
</button>
@endif
</div>

resources/views/forum/threads/show.blade.php

Open in GitHub
// ...
 
<div class="border-t">
<livewire:like-reply :reply="$reply"/>
</div>
 
// ...

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.