'required|string|max:255', ]; } public function mount(): void { $this->compilers = app(ContributionFactory::class)->compilerSelect(); $this->countries = Country::select('name', 'id')->get()->toBase(); $this->clearSearch(); } /** @todo implement compilation of document */ public function submit(): void { $this->validate(); } public function updatedSearch(): void { $this->memberResults = Member::search($this->search, fn ($engine, $query, $options) => $engine->search($query, [ ...$options, 'filter' => ['birthday IS NOT NULL', 'address IS NOT EMPTY'] ]))->get()->toBase(); } public function onSubmitFirstMemberResult(): void { if (count($this->memberResults) === 0) { $this->clearSearch(); return; } $this->onSubmitMemberResult($this->memberResults[0]->id); } public function onSubmitMemberResult(int $memberId): void { if (in_array($memberId, $this->members)) { $this->members = array_values(array_filter($this->members, fn ($m) => $m !== $memberId)); } else { $this->members[] = $memberId; } $this->js('document.querySelector("#search_input").focus()'); $this->clearSearch(); } public function clearSearch(): void { $this->search = ''; $this->memberResults = collect([]); } public function render() { return <<<'HTML'
@foreach($memberResults as $member) @endforeach
Formular erstellen
HTML; } }