Add error session key to flash messages so frontend can display error notifications from session flash data.
61 lines
2.0 KiB
PHP
Executable File
61 lines
2.0 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Http\Middleware;
|
|
|
|
use App\Containers\AppStructure\Tasks\GetCachedNavigationDataTask;
|
|
use App\Containers\AppStructure\Tasks\GenerateBreadcrumbsTask;
|
|
use Illuminate\Http\Request;
|
|
use Inertia\Middleware;
|
|
use Tightenco\Ziggy\Ziggy;
|
|
|
|
class HandleInertiaRequests extends Middleware
|
|
{
|
|
protected $rootView = 'app';
|
|
|
|
public function __construct(private readonly GenerateBreadcrumbsTask $generateBreadcrumbsTask){}
|
|
|
|
public function version(Request $request): ?string
|
|
{
|
|
return parent::version($request);
|
|
}
|
|
|
|
public function share(Request $request): array
|
|
{
|
|
// Отключаем SSR для Dashboard роутов
|
|
if (str_starts_with($request->path(), 'dashboard')) {
|
|
config(['inertia.ssr.enabled' => false]);
|
|
}
|
|
|
|
return [
|
|
...parent::share($request),
|
|
'app' => [
|
|
'env' => app()->environment(),
|
|
],
|
|
'auth' => [
|
|
'user' => $request->user() ? $request->user()->only('id', 'name', 'email', 'created_at') : null,
|
|
],
|
|
'ziggy' => function() {
|
|
return array_merge((new Ziggy())->toArray(), [
|
|
'location' => url()->current(),
|
|
]);
|
|
},
|
|
'navigation' => app(GetCachedNavigationDataTask::class)->run(),
|
|
'breadcrumbs' => $this->generateBreadcrumbsTask->run(),
|
|
'urlPrev' => function () {
|
|
if (url()->previous() !== url()->current()) {
|
|
return url()->previous();
|
|
}
|
|
return 'empty';
|
|
},
|
|
'yandex_metrika_id' => config('services.yandex_metrika.id'),
|
|
'flash' => function () use ($request) {
|
|
return [
|
|
'success' => $request->session()->get('success'),
|
|
'error' => $request->session()->get('error'),
|
|
'extracted_text' => $request->session()->get('extracted_text'),
|
|
];
|
|
},
|
|
];
|
|
}
|
|
}
|