ldc-ovoteam/app/Http/Middlewares/HandleInertiaRequests.php
2026-08-04 10:58:11 +02:00

66 lines
2.2 KiB
PHP

<?php
namespace App\Http\Middlewares;
use App\Enums\Contact\ActivitySectorEnum;
use App\Enums\Contact\ObjectEnum;
use Illuminate\Http\Request;
use Inertia\Middleware;
use Tighten\Ziggy\Ziggy;
use Uwil\LaravelCommon\Helpers\InertiaHelper;
use Uwil\LaravelCommon\Support\InertiaSharedRegistry;
use Uwil\LaravelDynamicPages\Enums\PageStatusEnum;
use Uwil\LaravelDynamicPages\Models\DynamicPage;
class HandleInertiaRequests extends Middleware
{
/**
* Define the props that are shared by default.
*
* @param \Illuminate\Http\Request $request
* @return array<string, mixed>
*/
public function share(Request $request): array
{
// Load all published dynamic pages with each parent page relationship.
$dynamicPageModels = DynamicPage::getModelsCached()
->where('status', PageStatusEnum::published);
$dynamicPages = [];
foreach ($dynamicPageModels as $dynamicPageModel) {
$pascalCase =
str_replace(' ', '', ucwords(str_replace('-', ' ', $dynamicPageModel->id_key)));
$dynamicPages["page{$pascalCase}"] = $dynamicPageModel;
}
$props = [
...InertiaHelper::errorProps(parent::share($request)),
'recaptchaKey' => config('services.google.recaptcha.public'),
'dynamicPages' => $dynamicPages,
'activitySectorEnum' => ActivitySectorEnum::toArray(),
'objectEnum' => ObjectEnum::toArray(),
'cookieEnv' => [
"matomoSiteId" => config('cookie-notice.matomo.site_id'),
"recaptchaKey" => config('cookie-notice.google.recaptcha.public'),
"recaptchaBypassKey" => config('cookie-notice.google.recaptcha.bypassKey'),
"gaMeasurementId" => config('cookie-notice.google.analytics.id')
],
'ziggy' => fn (): array => [
// Routes ziggy.
...new Ziggy()->toArray(),
// Use for route().current() by ziggy.
'location' => $request->url(),
],
// More props here.
];
return array_replace_recursive(
$props,
InertiaSharedRegistry::resolve($request)
);
}
}