53 lines
1.6 KiB
PHP
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)
|
|
);
|
|
}
|
|
}
|