ldc-ovoteam/app/Http/Middlewares/HandleInertiaRequests.php
2026-04-15 09:31:53 +02:00

53 lines
1.6 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 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()
// More props here.
];
return array_replace_recursive(
$props,
InertiaSharedRegistry::resolve($request)
);
}
}