akaunting 3.0 (the last dance)

This commit is contained in:
Burak Civan
2022-06-01 10:15:55 +03:00
parent cead09f6d4
commit d9c0764572
3812 changed files with 126831 additions and 102949 deletions

View File

@ -0,0 +1,99 @@
<?php
namespace App\Http\Livewire\Menu;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class Favorite extends Component
{
public $title = null;
public $icon = null;
public $route = null;
public $url = null;
public $favorited = false;
public function render(): View
{
$favorites = setting('favorites.menu.' . user()->id, []);
if (!empty($favorites)) {
$favorites = json_decode($favorites, true);
foreach ($favorites as $favorite) {
if ($this->title == $favorite['title']) {
$this->favorited = true;
break;
}
}
}
return view('livewire.menu.favorite');
}
public function changeStatus()
{
if ($this->favorited) {
$this->removeFavorite();
} else {
$this->addFavorite();
}
}
public function addFavorite()
{
$favorites = setting('favorites.menu.' . user()->id, []);
if (!empty($favorites)) {
$favorites = json_decode($favorites, true);
}
/*
if (in_array($this->title, $favorites)) {
return;
}
*/
$favorites[] = [
'title' => $this->title,
'icon' => $this->icon,
'route' => $this->route,
'url' => $this->url,
];
$this->favorited = true;
setting(['favorites.menu.' . user()->id => json_encode($favorites)])->save();
$this->emit('addedFavorite');
}
public function removeFavorite()
{
$favorites = setting('favorites.menu.' . user()->id, []);
if (!empty($favorites)) {
$favorites = json_decode($favorites, true);
}
foreach ($favorites as $key => $favorited) {
if ($favorited['title'] != $this->title) {
continue;
}
unset($favorites[$key]);
$this->favorited = false;
break;
}
setting(['favorites.menu.' . user()->id => json_encode($favorites)])->save();
$this->emit('removedFavorite');
}
}