Files
SkinbaseNova/app/Http/Controllers/Web/Posts/SearchFeedController.php

50 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Web\Posts;
use App\Http\Controllers\Controller;
use App\Services\Posts\PostHashtagService;
use App\Support\Seo\SeoFactory;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Inertia\Inertia;
use Inertia\Response;
class SearchFeedController extends Controller
{
public function __construct(
private PostHashtagService $hashtagService,
private SeoFactory $seoFactory,
) {}
/** GET /feed/search */
public function index(Request $request): Response
{
$trendingHashtags = Cache::remember(
'trending_hashtags',
300,
fn () => $this->hashtagService->trending(10, 24)
);
$seo = $this->seoFactory->simplePage(
title: 'Search Posts — ' . config('seo.site_name', 'Skinbase'),
description: 'Search posts, hashtags and creators on Skinbase.',
canonical: url('/feed/search'),
);
return Inertia::render('Feed/SearchFeed', [
'auth' => $request->user() ? [
'user' => [
'id' => $request->user()->id,
'username' => $request->user()->username,
'name' => $request->user()->name,
'avatar' => $request->user()->profile?->avatar_url ?? null,
],
] : null,
'initialQuery' => $request->query('q', ''),
'trendingHashtags' => $trendingHashtags,
'seo' => $seo,
]);
}
}