'de', 'label' => 'Deutsch'], ['value' => 'en', 'label' => 'English'], ]; public array $timezones = [ 'Europe/Berlin','UTC','Europe/Vienna','Europe/Zurich','America/New_York','Asia/Tokyo' ]; protected function rules(): array { return [ 'locale' => ['required', Rule::in(collect($this->locales)->pluck('value')->all())], 'timezone' => ['required', Rule::in($this->timezones)], 'session_timeout' => ['required','integer','min:5','max:1440'], ]; } public function save(): void { $this->validate(); // TODO: persist to settings storage (DB/Config) // e.g. Settings::set('app.locale', $this->locale); // Settings::set('app.timezone', $this->timezone); // Settings::set('session.timeout', $this->session_timeout); session()->flash('saved', true); $this->dispatch('toast', body: 'Einstellungen gespeichert.'); } public function render() { return view('livewire.ui.system.general-form'); } }