diff --git a/app/Http/Controllers/ListController.php b/app/Http/Controllers/ListController.php index 1cf491b..53307f6 100644 --- a/app/Http/Controllers/ListController.php +++ b/app/Http/Controllers/ListController.php @@ -10,6 +10,18 @@ use Illuminate\Support\Str; class ListController extends Controller { + public function community() + { + $lists = UserList::where('is_public', true) + ->with('user') + ->withCount('listGames') + ->latest() + ->paginate(24); + + return view('lists.community', compact('lists')); + } + + public function index() { $lists = auth()->user()->lists()->withCount('listGames')->latest()->get(); diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 9e88964..2291771 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -45,6 +45,7 @@ Browse Top Rated New Releases + Lists @auth Activity @endauth @@ -187,6 +188,7 @@ Browse Top Rated New Releases + Lists Developers diff --git a/resources/views/lists/community.blade.php b/resources/views/lists/community.blade.php new file mode 100644 index 0000000..c7d3462 --- /dev/null +++ b/resources/views/lists/community.blade.php @@ -0,0 +1,66 @@ +@extends('layouts.app') +@php use Illuminate\Support\Str; @endphp + +@section('title', 'Community Lists — GameLog') +@section('description', 'Browse public game lists created by the GameLog community.') + +@section('content') +
+ +
+
+

Community Lists

+

Public game lists from GameLog members

+
+ @auth + + My Lists + + @endauth +
+ + @if($lists->isEmpty()) +
+ + + +

No public lists yet.

+ @guest +

Sign up and create the first one!

+ @endguest +
+ @else +
+ @foreach($lists as $list) + +

+ {{ $list->title }} +

+ @if($list->description) +

{{ $list->description }}

+ @else +
+ @endif +
+ + {{ $list->list_games_count }} {{ Str::plural('game', $list->list_games_count) }} + + @if($list->user) + + {{ $list->user->username }} + + @endif +
+
+ @endforeach +
+ +
+ {{ $lists->links() }} +
+ @endif + +
+@endsection diff --git a/routes/web.php b/routes/web.php index 57c03eb..2e0161a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -49,6 +49,7 @@ Route::middleware('auth')->group(function () { }); // Lists +Route::get('/community/lists', [\App\Http\Controllers\ListController::class, 'community'])->name('lists.community'); Route::get('/lists', [\App\Http\Controllers\ListController::class, 'index'])->name('lists.index')->middleware('auth'); Route::post('/lists', [\App\Http\Controllers\ListController::class, 'store'])->name('lists.store')->middleware('auth'); Route::get('/lists/{list:slug}', [\App\Http\Controllers\ListController::class, 'show'])->name('lists.show');