diff --git a/app/Livewire/CreateCode.php b/app/Livewire/CreateCode.php index c062bb5..f688f64 100644 --- a/app/Livewire/CreateCode.php +++ b/app/Livewire/CreateCode.php @@ -8,6 +8,7 @@ class CreateCode extends Component { public string $message; + private array $umlaute = ['ö', 'ä', 'ü', "ß"]; protected array $symbols = [ 'enable', @@ -36,18 +37,42 @@ class CreateCode extends Component 'tools_power_drill', 'nest_eco_leaf', 'air_freshener', + 'favorite', + 'bolt', + 'key', + 'sunny', + ]; #[Computed(persist: true)] public function letters(): array { shuffle($this->symbols); - - return collect(range('a', 'z')) + return collect([...range('a', 'z'), ...$this->umlaute]) ->combine($this->symbols) ->toArray(); } + /** + * Display german umlaut only if present in the message + */ + public function legendLetters(string $message): array + { + + if (count(array_intersect(mb_str_split($message), $this->umlaute)) == 0) { + return array_filter($this->letters, function ($key) { + return !in_array($key, $this->umlaute); + }, ARRAY_FILTER_USE_KEY); + } + + // get uppercase ß + $letters = $this->letters; + $letters['ẞ'] = $letters["ß"]; + unset($letters['ß']); + + return $letters; + } + public function render() { return view('livewire.create-code'); diff --git a/resources/views/components/code.blade.php b/resources/views/components/code.blade.php index 46c07c3..7ebe543 100644 --- a/resources/views/components/code.blade.php +++ b/resources/views/components/code.blade.php @@ -6,10 +6,10 @@
class(['text-center flex flex-wrap gap-8 mt-auto']) }}> @foreach(array_filter(explode(' ', trim($message))) as $word)
- @foreach(str_split($word) as $character) + @foreach(mb_str_split($word) as $character)
- {{ $letters[strtolower($character)] ?? $character }} + {{ $letters[mb_strtolower($character)] ?? $character }}
diff --git a/resources/views/components/legend.blade.php b/resources/views/components/legend.blade.php index 2910596..c54a4e3 100644 --- a/resources/views/components/legend.blade.php +++ b/resources/views/components/legend.blade.php @@ -3,7 +3,7 @@
@foreach ($letters as $letter => $symbol)
- {{ ucwords($letter) }} + {{ mb_convert_case($letter, MB_CASE_UPPER) }} {{ $symbol }}
@endforeach diff --git a/resources/views/livewire/create-code.blade.php b/resources/views/livewire/create-code.blade.php index 7892adf..6e3ce31 100644 --- a/resources/views/livewire/create-code.blade.php +++ b/resources/views/livewire/create-code.blade.php @@ -11,6 +11,6 @@ class="bg-white/10 text-white py-2 px-3 rounded-xl w-full"> @if ($message) - + @endif