This commit is contained in:
2025-09-18 15:31:27 +02:00
commit 2abba0c2b7
406 changed files with 31879 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
<?php
namespace App\Livewire;
use App\Models\Episode;
use App\Models\User;
use Livewire\Component;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cache;
use Maize\Markable\Models\Like;
class LikeButton extends Component
{
public $episodeId = 0;
public $likeCount = 0;
public $liked = false;
public function mount(Episode $episode)
{
$this->episodeId = $episode->id;
$this->likeCount = $episode->likes->count();
if (Auth::check()) {
$this->liked = Like::has($episode, User::where('id', Auth::user()->id)->firstOrFail());
}
}
public function update()
{
$episode = Episode::where('id', $this->episodeId)->firstOrFail();
$this->likeCount = $episode->likes->count();
if (Auth::check()) {
$this->liked = Like::has($episode, User::where('id', Auth::user()->id)->firstOrFail());
}
}
public function like()
{
if (! Auth::check()) {
return;
}
$episode = Episode::where('id', $this->episodeId)->firstOrFail();
Like::toggle($episode, User::where('id', Auth::user()->id)->firstOrFail());
Cache::forget('episodeLikes'.$this->episodeId);
if ($this->liked) {
$this->liked = false;
$this->likeCount--;
return;
}
$this->liked = true;
$this->likeCount++;
}
public function render()
{
return view('livewire.like-button');
}
}