add language dropdown

This commit is contained in:
2023-11-24 19:49:14 +05:00
parent 206582e195
commit 70546208a3
10 changed files with 1089 additions and 23 deletions

View File

@@ -9,9 +9,12 @@ use App\Nova\Resources\System\Location\Province;
use App\Nova\Resources\System\Roles\Permission;
use App\Nova\Resources\System\Roles\Role;
use App\Nova\User;
use App\Repos\System\Nova\NovaRepo;
use Eolica\NovaLocaleSwitcher\LocaleSwitcher;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use Laravel\Nova\Dashboards\Main;
use Laravel\Nova\Events\ServingNova;
use Laravel\Nova\Menu\Menu;
use Laravel\Nova\Menu\MenuGroup;
use Laravel\Nova\Menu\MenuItem;
@@ -33,6 +36,7 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
$this->setupNavigation();
$this->setupUserNavigation();
$this->setupUserSettings();
}
/**
@@ -75,7 +79,11 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
*/
public function tools(): array
{
return [];
return [
LocaleSwitcher::make()
->setLocales(config('app.locales'))
->onSwitchLocale(NovaRepo::localeSwitcherSave()),
];
}
/**
@@ -86,23 +94,6 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
//
}
/**
* Setup user navigation (dropdown).
*/
public function setupUserNavigation(): void
{
Nova::userMenu(function (Request $request, Menu $menu) {
$menu->prepend(
MenuItem::make(
__('My Profile'),
sprintf('/resources/users/%s', $request->user()->id)
)
);
return $menu;
});
}
/**
* Setup navigation
*/
@@ -135,4 +126,24 @@ class NovaServiceProvider extends NovaApplicationServiceProvider
];
});
}
/**
* Setup user navigation (dropdown).
*/
public function setupUserNavigation(): void
{
Nova::userMenu(function (Request $request, Menu $menu) {
$menu->prepend(MenuItem::make(__('My Profile'), sprintf('/resources/users/%s', $request->user()->id)));
return $menu;
});
}
/**
* Setup user settings
*/
public function setupUserSettings(): void
{
Nova::serving(fn (ServingNova $event) => NovaRepo::serving($event));
}
}