44 lines
1.2 KiB
PHP
44 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Providers;
|
|
|
|
use Illuminate\Support\ServiceProvider;
|
|
use Illuminate\Support\Facades\Blade;
|
|
use Illuminate\View\ComponentAttributeBag;
|
|
use Livewire\Livewire;
|
|
|
|
class BaseServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Register services.
|
|
*/
|
|
public function register(): void
|
|
{
|
|
Blade::componentNamespace('App\\View\\Ui', 'ui');
|
|
Blade::componentNamespace('App\\View\\Page', 'page');
|
|
Blade::componentNamespace('App\\View\\Form', 'form');
|
|
|
|
ComponentAttributeBag::macro('mergeWhen', function ($condition, $key, $attributes) {
|
|
/** @var ComponentAttributeBag */
|
|
$self = $this;
|
|
return $condition ? $self->merge([$key => $attributes]) : $self;
|
|
});
|
|
|
|
Livewire::resolveMissingComponent(function ($name) {
|
|
'modules.dashboard.components.dashboard-component';
|
|
if (str($name)->startsWith('modules.')) {
|
|
return str($name)->explode('.')->map(fn ($name) => str($name)->studly()->toString())->implode('\\');
|
|
}
|
|
|
|
return null;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Bootstrap services.
|
|
*/
|
|
public function boot(): void
|
|
{
|
|
}
|
|
}
|