New design

This commit is contained in:
2025-12-20 17:44:35 +01:00
parent c693f7c7ed
commit bc25bb1626
12 changed files with 826 additions and 299 deletions

46
app/Enums/Parties.php Normal file
View File

@@ -0,0 +1,46 @@
<?php
namespace App\Enums;
enum Parties: string
{
case SOCIAL_DEMOCRATS = 'S';
case CENTER_PARTY = 'C';
case LIBERALS = 'L';
case GREEN_PARTY = 'MP';
case LEFT_PARTY = 'V';
case MODERATES = 'M';
case CHRIST_DEMOCRATS = 'KD';
case SWEDEN_DEMOCRATS = 'SD';
case OTHER = '-';
public function label(): string
{
return match ($this) {
self::SOCIAL_DEMOCRATS => 'Socialdemokraterna',
self::CENTER_PARTY => 'Centerpartiet',
self::LIBERALS => 'Liberalerna',
self::GREEN_PARTY => 'Miljöpartiet',
self::LEFT_PARTY => 'Vänsterpartiet',
self::MODERATES => 'Moderaterna',
self::CHRIST_DEMOCRATS => 'Kristdemokraterna',
self::SWEDEN_DEMOCRATS => 'Sverigedemokraterna',
self::OTHER => 'Partilös',
};
}
public function logo(): string
{
return match ($this) {
self::SOCIAL_DEMOCRATS => 'https://bilder.riksdagen.se/publishedmedia/cj3cmk5s63xb1ihzlalj/Symbol_Socialdemokraterna__134px.png',
self::CENTER_PARTY => 'https://bilder.riksdagen.se/publishedmedia/t1cxmh6vk2olrgltat9j/Symbol_Centern_125.png',
self::LIBERALS => 'https://bilder.riksdagen.se/publishedmedia/ve2gtm25br1jr8t8c3mo/L_partilogga.png',
self::GREEN_PARTY => 'https://bilder.riksdagen.se/publishedmedia/zzxff0abnuukdggtqboe/MP_partilogga.png',
self::LEFT_PARTY => 'https://bilder.riksdagen.se/publishedmedia/9ktrv8a5x75lo7zm90pn/Symbol_Va-nsterpartiet_121px.png',
self::MODERATES => 'https://bilder.riksdagen.se/publishedmedia/hxssexpfw01wb5uh3nfp/Symbol_Moderaterna_125px.png',
self::CHRIST_DEMOCRATS => 'https://bilder.riksdagen.se/publishedmedia/sjyk5gmvg3rkxmy2x84o/KD_partilogga.png',
self::SWEDEN_DEMOCRATS => 'https://bilder.riksdagen.se/publishedmedia/aog7hfhgv94tykktrkpy/Sveriedemokraterna_132px.png',
self::OTHER => '-',
};
}
}

View File

@@ -1,29 +0,0 @@
<?php
namespace App\Enums;
enum PartyEnum: string
{
case SOCIAL_DEMOCRATS = 'S';
case CENTER_PARTY = 'C';
case LIBERALS = 'L';
case GREEN_PARTY = 'MP';
case LEFT_PARTY = 'V';
case MODERATES = 'M';
case CHRIST_DEMOCRATS = 'KD';
case SWEDEN_DEMOCRATS = 'SD';
public function label(): string
{
return match ($this) {
self::SOCIAL_DEMOCRATS => 'Socialdemokraterna',
self::CENTER_PARTY => 'Centerpartiet',
self::LIBERALS => 'Liberalerna',
self::GREEN_PARTY => 'Miljöpartiet',
self::LEFT_PARTY => 'Vänsterpartiet',
self::MODERATES => 'Moderaterna',
self::CHRIST_DEMOCRATS => 'Kristdemokraterna',
self::SWEDEN_DEMOCRATS => 'Sverigedemokraterna',
};
}
}

13
app/Livewire/HomePage.php Normal file
View File

@@ -0,0 +1,13 @@
<?php
namespace App\Livewire;
use Livewire\Component;
class HomePage extends Component
{
public function render()
{
return view('livewire.home-page');
}
}

View File

@@ -4,7 +4,7 @@ namespace App\Livewire\Person;
use Livewire\Component;
use App\Services\RiksdagenService;
use App\Enums\PartyEnum;
use App\Enums\Parties;
class Search extends Component
{
@@ -16,7 +16,7 @@ class Search extends Component
public function mount()
{
$this->parties = PartyEnum::cases();
$this->parties = collect(Parties::cases())->sortBy(fn($party) => $party->label())->toArray();
}
public function search()

View File

@@ -6,7 +6,9 @@ use Livewire\Component;
use App\Services\RiksdagenService;
use Livewire\Attributes\Computed;
use Asantibanez\LivewireCharts\Models\PieChartModel;
use Livewire\Attributes\Lazy;
#[Lazy()]
class Show extends Component
{
public $personId;
@@ -132,8 +134,9 @@ class Show extends Component
$statistics = $this->votingStatistics;
$pieChart = (new PieChartModel())
->setTitle('Röststatistik för ' . $this->selectedYear)
->setAnimated(true);
->setTitle('Voteringsstatistik för ' . $this->selectedYear)
->setAnimated(true)
->withDataLabels();
$colors = [
'Ja' => '#10b981', // Green
@@ -150,6 +153,11 @@ class Show extends Component
return $pieChart;
}
public function placeholder()
{
return view('livewire.person.show-skeleton');
}
public function render()
{
return view('livewire.person.show');