year) { $this->year = now()->year; } } public function render() { return view('livewire.meetup.meetup-event-table', [ 'markers' => MeetupEvent::query() ->with([ 'meetup.city.country', ]) ->whereHas('meetup.city.country', fn($query) => $query->where('countries.code', $this->country->code)) ->get() ->map(fn($event) => [ 'id' => $event->id, 'name' => $event->meetup->name.': '.$event->location, 'coords' => [$event->meetup->city->latitude, $event->meetup->city->longitude], ]), 'events' => MeetupEvent::query() ->with([ 'meetup.city.country', ]) ->whereHas('meetup.city.country', fn($query) => $query->where('countries.code', $this->country->code)) ->get() ->map(fn($event) => [ 'id' => $event->id, 'startDate' => $event->start, 'endDate' => $event->start->addHours(1), 'location' => $event->location, 'description' => $event->description, ]), ]); } public function filterByMarker($id) { return to_route('meetup.table.meetupEvent', [ '#table', 'country' => $this->country->code, 'year' => $this->year, 'table' => [ 'filters' => [ 'byid' => $id, ], ] ]); } public function popover($content, $ids) { return to_route('meetup.table.meetupEvent', [ '#table', 'year' => $this->year, 'country' => $this->country->code, 'table' => [ 'filters' => [ 'byid' => $ids, ] ] ]); } }