ViewServiceProvider   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 26
c 1
b 0
f 0
dl 0
loc 50
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A boot() 0 44 2
A register() 0 2 1
1
<?php
2
3
namespace Thinktomorrow\Chief\App\Providers;
4
5
use Illuminate\Support\Facades\Blade;
6
use Illuminate\Support\ServiceProvider;
7
8
class ViewServiceProvider extends ServiceProvider
9
{
10
    public function boot(): void
11
    {
12
        $this->loadViewsFrom(__DIR__ . '/../../resources/views', 'chief');
13
14
        Blade::componentNamespace('Thinktomorrow\\Chief\\App\\View\\Components', 'chief');
15
16
        // Manager components
17
        Blade::component('chief::manager.windows.state.windows', 'chief::window.states');
18
        Blade::component('chief::manager.windows.links.window', 'chief::window.links');
19
20
        // Template components
21
        Blade::component('chief::templates.page.layout', 'chief::page.layout');
22
        Blade::component('chief::templates.page.template', 'chief::page.template');
23
        Blade::component('chief::templates.page.hero', 'chief::page.hero');
24
        Blade::component('chief::templates.page.grid', 'chief::page.grid');
25
        Blade::component('chief::templates.solo.layout', 'chief::solo.layout');
26
        Blade::component('chief::templates.solo.template', 'chief::solo.template');
27
        Blade::component('chief::templates.mail.layout', 'chief::mail.layout');
28
        Blade::component('chief::templates.mail.template', 'chief::mail.template');
29
30
        // Chief directives
31
        Blade::directive('adminRoute', function ($expression) {
32
            return "<?php echo \$manager->route({$expression}); ?>";
33
        });
34
35
        Blade::directive('adminCan', function ($expression) {
36
            return "<?php if (isset(\$manager) && \$manager->can({$expression})) { ?>";
37
        });
38
39
        Blade::directive('elseAdminCan', function () {
40
            return '<?php } else { ?>';
41
        });
42
43
        Blade::directive('endAdminCan', function () {
44
            return '<?php } ?>';
45
        });
46
47
        // TODO(ben): better solution for this ugly mess
48
        // Hello Tijs. We meet again
49
        $isCollapsedOnPageLoad =
50
            isset($_COOKIE['is-navigation-collapsed'])
51
            ? filter_var($_COOKIE['is-navigation-collapsed'], FILTER_VALIDATE_BOOLEAN)
52
            : false;
53
        view()->share('isCollapsedOnPageLoad', $isCollapsedOnPageLoad);
54
    }
55
56
    public function register()
57
    {
58
    }
59
}
60