Init
This commit is contained in:
84
app/Http/Middleware/HandleInertiaRequests.php
Normal file
84
app/Http/Middleware/HandleInertiaRequests.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Inertia\Middleware;
|
||||
|
||||
class HandleInertiaRequests extends Middleware
|
||||
{
|
||||
/**
|
||||
* The root template that's loaded on the first page visit.
|
||||
*
|
||||
* @see https://inertiajs.com/server-side-setup#root-template
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $rootView = 'app';
|
||||
|
||||
/**
|
||||
* Determines the current asset version.
|
||||
*
|
||||
* @see https://inertiajs.com/asset-versioning
|
||||
*/
|
||||
public function version(Request $request): ?string
|
||||
{
|
||||
return parent::version($request);
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the props that are shared by default.
|
||||
*
|
||||
* @see https://inertiajs.com/shared-data
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function share(Request $request): array
|
||||
{
|
||||
return [
|
||||
...parent::share($request),
|
||||
'auth' => [
|
||||
'user' => $request->user(),
|
||||
],
|
||||
'flash' => [
|
||||
'success' => fn () => $request->session()->get('success'),
|
||||
'error' => fn () => $request->session()->get('error'),
|
||||
'message' => fn () => $request->session()->get('message'),
|
||||
'status' => fn () => $request->session()->get('status'),
|
||||
],
|
||||
'authConfig' => $this->getAuthConfig(),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the auth UI configuration for the frontend.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
protected function getAuthConfig(): array
|
||||
{
|
||||
$config = config('auth-ui');
|
||||
|
||||
// Filter enabled providers
|
||||
$providers = collect($config['providers'] ?? [])
|
||||
->filter(fn ($provider) => $provider['enabled'] ?? false)
|
||||
->map(fn ($provider, $key) => [
|
||||
'key' => $key,
|
||||
'label' => $provider['label'],
|
||||
'icon' => $provider['icon'],
|
||||
])
|
||||
->values()
|
||||
->all();
|
||||
|
||||
return [
|
||||
'appName' => $config['app_name'] ?? config('app.name'),
|
||||
'features' => $config['features'],
|
||||
'login' => $config['login'],
|
||||
'register' => $config['register'],
|
||||
'forgotPassword' => $config['forgot_password'],
|
||||
'resetPassword' => $config['reset_password'],
|
||||
'providers' => $providers,
|
||||
'legal' => $config['legal'],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user