A lot of things
This commit is contained in:
@@ -2,14 +2,42 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Entry;
|
||||
use App\Services\ActivityService;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
use App\Models\News;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
|
||||
public function index(): View {
|
||||
return view('home');
|
||||
public function __construct( private ActivityService $service ) {}
|
||||
|
||||
public function index( Request $request ): View {
|
||||
|
||||
$filters = [ 'entries', 'news', 'messages', 'threads', 'clubs' ];
|
||||
|
||||
$cookie = $request->cookie('activity_filters');
|
||||
$activeFilters = $cookie ? array_intersect( json_decode( $cookie, true ) ?? [], $filters ) : $filters;
|
||||
|
||||
if( empty( $activeFilters ) ) {
|
||||
$activeFilters = $filters;
|
||||
}
|
||||
|
||||
$items = $this->service->getActivities( array_values( $activeFilters ) );
|
||||
|
||||
$viewFilters = [
|
||||
'entries' => ['label' => 'Entries', 'icon' => 'database'],
|
||||
'news' => ['label' => 'News', 'icon' => 'newspaper'],
|
||||
'messages' => ['label' => 'Posts', 'icon' => 'message-square'],
|
||||
'threads' => ['label' => 'Threads', 'icon' => 'messages-square'],
|
||||
'clubs' => ['label' => 'Clubs', 'icon' => 'balloon'],
|
||||
];
|
||||
|
||||
$latestNews = News::published()->latest('created_at')->limit(5)->get();
|
||||
$featuredEntries = Entry::published()->where('featured', true)->latest('featured_at')->get();
|
||||
|
||||
return view('home', compact('items', 'activeFilters', 'viewFilters', 'latestNews', 'featuredEntries'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user