add landing pages for meetups

This commit is contained in:
Benjamin Takats
2023-01-14 20:35:54 +01:00
parent 8120b13bff
commit 2f00e34e10
55 changed files with 3161 additions and 17 deletions

View File

@@ -18,18 +18,19 @@ class BookCaseTable extends Component
public function render()
{
return view('livewire.book-case.book-case-table', [
'markers' => BookCase::when($this->table['filters']['byids'] ?? false,
fn($query) => $query->whereIn('id', str($this->table['filters']['byids'] ?? '')->explode(',')))
->get()
->map(fn($b) => [
'title' => $b->title,
'lat' => $b->latitude,
'lng' => $b->longitude,
'url' => 'https://gonoware.com',
'icon' => asset('img/btc-logo-6219386_1280.png'),
'icon_size' => [42, 42],
])
->toArray(),
'markers' => !isset($this->table['filters']['byids']) ? []
: BookCase::query()
->whereIn('id', str($this->table['filters']['byids'] ?? '')->explode(','))
->get()
->map(fn($b) => [
'title' => $b->title,
'lat' => $b->latitude,
'lng' => $b->longitude,
'url' => 'https://gonoware.com',
'icon' => asset('img/btc-logo-6219386_1280.png'),
'icon_size' => [42, 42],
])
->toArray(),
'bookCases' => BookCase::get(),
'countries' => Country::query()
->select(['code', 'name'])

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Http\Livewire\Meetup;
use App\Models\Country;
use App\Models\Meetup;
use App\Models\MeetupEvent;
use Livewire\Component;
use RalphJSmit\Laravel\SEO\Support\SEOData;
class LandingPage extends Component
{
public Meetup $meetup;
public Country $country;
public ?int $year = null;
protected $queryString = ['year'];
public function render()
{
return view('livewire.meetup.landing-page', [
'events' => MeetupEvent::query()
->with([
'meetup.city.country',
])
->where('meetup_events.meetup_id', $this->meetup->id)
->where('meetup_events.start', '>=', now())
->get()
->map(fn($event) => [
'id' => $event->id,
'startDate' => $event->start,
'endDate' => $event->start->addHours(1),
'location' => $event->location,
'description' => $event->description,
]),
])
->layout('layouts.guest', [
'SEOData' => new SEOData(
title: $this->meetup->name,
description: __('Bitcoiner Meetups are a great way to meet other Bitcoiners in your area. You can learn from each other, share ideas, and have fun!'),
image: asset($this->meetup->getFirstMediaUrl('logo')),
)
]);
}
}