'Alle', 'villen' => 'Villen', 'penthouse' => 'Penthouse', 'loft' => 'Loft' ]; $this->filters = $filters; $this->activeFilter = 'alle'; $this->theme = config('app.theme', 'b2in'); $this->content = config("content.themes.{$this->theme}.portfolio", []); $this->filters = config("content.themes.{$this->theme}.portfolio.filters", $filters); } public function filterBy(string $category): void { $this->activeFilter = $category; } public function openModal(array $project): void { $this->selectedProject = $project; $this->showModal = true; } public function closeModal(): void { $this->showModal = false; $this->selectedProject = null; } public function getFilteredProjects(): array { $projects = config("content.themes.{$this->theme}.portfolio.projects", []); if ($this->activeFilter === 'alle') { return $projects; } return array_filter($projects, function ($project) { return strtolower($project['category']) === strtolower($this->activeFilter); }); } public function render() { return view('livewire.web.components.sections.portfolio'); } }