guardSlug($publicSlug); $folder = Folder::query()->where('slug', $folderSlug)->where('public', true)->firstOrFail(); $files = $this->allowance->withCounts(File::query()->publiclyVisibleForFolder($folder), null) ->with('categories')->orderBy('name') ->paginate(self::PER_PAGE)->withQueryString(); $page = Paginator::resolveCurrentPage(); if (Pagination::isPastLastPage($files, $page)) { $redirectParams = [$publicSlug, $folderSlug]; $redirectPage = Pagination::redirectPage($files); if ($redirectPage !== null) { $redirectParams['page'] = $redirectPage; } return redirect()->route('public.folder', $redirectParams); } return Inertia::render("public/themes/{$this->themeKey()}/folder", [ 'folder' => [ 'name' => $folder->name, ], 'files' => $files->through(fn (File $file): array => $this->fileProps($file, $publicSlug))->items(), 'pagination' => Pagination::meta($files), ]); } }