HandleInertiaRequests   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 4
eloc 17
c 3
b 0
f 0
dl 0
loc 42
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A version() 0 3 1
A share() 0 24 3
1
<?php
2
3
namespace App\Http\Middleware;
4
5
use Inertia\Middleware;
6
use Illuminate\Http\Request;
7
use PragmaRX\Version\Package\Version;
8
9
use App\Actions\BuildNavbar;
10
11
class HandleInertiaRequests extends Middleware
12
{
13
    /**
14
     * The root template that's loaded on the first page visit.
15
     */
16
    protected $rootView = 'app';
17
18
    /**
19
     * Determines the current asset version.
20
     */
21
    public function version(Request $request)
22
    {
23
        return parent::version($request);
24
    }
25
26
    /**
27
     * Defines the props that are shared by default.
28
     */
29
    public function share(Request $request)
30
    {
31
        return array_merge(parent::share($request), [
32
            //  Flash messages are used for success/failure messages on next page load
33
            'flash' => [
34
                'message' => fn() => $request->session()->get('message'),
35
                'type'    => fn() => $request->session()->get('type'),
36
            ],
37
            //  App information that is shared and used on all pages
38
            'app' => [
39
                'name'     => config('app.name'),
40
                'logo'     => config('app.logo'),
41
                'version'  => (new Version)->full(),
42
                //  Current logged in user
43
                'user'     => fn() => $request->user() ? $request->user() : null,
44
                //  File information
45
                'fileData' => [
46
                    'maxSize'   => config('filesystems.max_filesize'),
47
                    'chunkSize' => config('filesystems.chunk_size'),
48
                    'token'     => csrf_token(),
49
                ],
50
            ],
51
            //  Dynamically built navigation menu
52
            'navBar' => fn() => $request->user() ? (new BuildNavbar)->build($request->user()) : [],
53
        ]);
54
    }
55
}
56