76 lines
2.6 KiB
PHP
76 lines
2.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* View Service Provider
|
|
*
|
|
* This provider handles global data sharing for both Inertia and Blade views.
|
|
*/
|
|
|
|
namespace App\Providers;
|
|
|
|
use App\Settings\GeneralSettings;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Illuminate\Support\Facades\View;
|
|
use Illuminate\Support\ServiceProvider;
|
|
use Inertia\Inertia;
|
|
|
|
class ViewServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Register any application services.
|
|
*/
|
|
public function register(): void
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Bootstrap any application services.
|
|
*/
|
|
public function boot(): void
|
|
{
|
|
if ($this->app->runningInConsole() && ! $this->app->environment('testing')) {
|
|
return;
|
|
}
|
|
|
|
// Share settings with Inertia
|
|
Inertia::share('setting', function () {
|
|
try {
|
|
$settings = app(GeneralSettings::class);
|
|
|
|
return [
|
|
'site_name' => $settings->site_name,
|
|
'site_description' => $settings->site_description,
|
|
'site_address' => $settings->site_address,
|
|
'site_phone' => $settings->site_phone,
|
|
'logo_light_url' => $settings->logo_light ? Storage::url($settings->logo_light) : null,
|
|
'logo_dark_url' => $settings->logo_dark ? Storage::url($settings->logo_dark) : null,
|
|
'icon_light_url' => $settings->icon_light ? Storage::url($settings->icon_light) : null,
|
|
'icon_dark_url' => $settings->icon_dark ? Storage::url($settings->icon_dark) : null,
|
|
];
|
|
} catch (\Exception $e) {
|
|
return [];
|
|
}
|
|
});
|
|
|
|
// Share settings with Blade views
|
|
View::composer('*', function ($view) {
|
|
try {
|
|
$settings = app(GeneralSettings::class);
|
|
$view->with('setting', [
|
|
'site_name' => $settings->site_name,
|
|
'site_description' => $settings->site_description,
|
|
'site_address' => $settings->site_address,
|
|
'site_phone' => $settings->site_phone,
|
|
'logo_light_url' => $settings->logo_light ? Storage::url($settings->logo_light) : null,
|
|
'logo_dark_url' => $settings->logo_dark ? Storage::url($settings->logo_dark) : null,
|
|
'icon_light_url' => $settings->icon_light ? Storage::url($settings->icon_light) : null,
|
|
'icon_dark_url' => $settings->icon_dark ? Storage::url($settings->icon_dark) : null,
|
|
]);
|
|
} catch (\Exception $e) {
|
|
$view->with('setting', []);
|
|
}
|
|
});
|
|
}
|
|
}
|