Basic design created

This commit is contained in:
2026-02-03 09:33:18 +01:00
parent 3570f442f5
commit e280fcfba8
29 changed files with 1055 additions and 28 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Providers;
use App\Models\User;
use Inertia\Inertia;
use Inertia\Response;
@@ -10,17 +11,43 @@ final class InertiaProvider
private string $vueFile;
private array $props;
private ?User $user;
public function __construct(string $vueFile, array $props) {
$this->user = auth()->user();
$this->vueFile = $vueFile;
$this->props = $props;
}
public function render() : Response {
$this->props['navbar'] = $this->generateNavbar();
$this->props['tenant'] = app('tenant')->local_group_name;
$this->props['user'] = $this->user;
$this->props['currentPath'] = request()->path();
return Inertia::render(
str_replace('/', '/Views/', $this->vueFile),
$this->props
);
}
private function generateNavbar() : array {
$navigation = [
'personal' => [],
'common' => [],
'costunits' => [],
'events' => [],
];
$navigation['personal'][] = ['url' => '/', 'display' => 'Home'];
if (null !== $this->user) {
$navigation['personal'][] = ['url' => '/personal-data', 'display' => 'Meine Daten'];
$navigation['personal'][] = ['url' => '/messages', 'display' => 'Meine Nachrichten'];
}
$navigation['common'][] = ['url' => '/capture-invoice', 'display' => 'Neue Abrechnung'];
$navigation['common'][] = ['url' => '/available-events', 'display' => 'Verfügbare Veranstaltungen'];
return $navigation;
}
}