diff --git a/resources/views/livewire/admin/press-releases/create.blade.php b/resources/views/livewire/admin/press-releases/create.blade.php index f68ba2d6..8bc419a9 100644 --- a/resources/views/livewire/admin/press-releases/create.blade.php +++ b/resources/views/livewire/admin/press-releases/create.blade.php @@ -19,6 +19,8 @@ use Livewire\Attributes\Title; use Livewire\Volt\Component; new #[Layout('components.layouts.app'), Title('Neue Pressemitteilung')] class extends Component { + use \App\Livewire\Concerns\InteractsWithPressReleaseTags; + public string $portal = 'presseecho'; public string $language = 'de'; @@ -110,39 +112,6 @@ new #[Layout('components.layouts.app'), Title('Neue Pressemitteilung')] class ex $this->resetErrorBag('title'); } - public function addTag(string $tag): void - { - $tag = trim($tag); - - if ($tag === '') { - return; - } - - $existing = $this->tagsArray(); - - if (count($existing) >= 5) { - return; - } - - if (in_array($tag, $existing, true)) { - return; - } - - $existing[] = $tag; - $this->keywords = implode(', ', $existing); - - unset($this->tags, $this->presubmitChecks); - } - - public function removeTag(string $tag): void - { - $existing = array_values(array_filter($this->tagsArray(), fn(string $existingTag): bool => $existingTag !== $tag)); - - $this->keywords = implode(', ', $existing); - - unset($this->tags, $this->presubmitChecks); - } - /** * Single Source of Truth für die Validierungsregeln. Ermöglicht * Live-Re-Validation via updated()-Hook ohne Duplikation. @@ -424,23 +393,6 @@ new #[Layout('components.layouts.app'), Title('Neue Pressemitteilung')] class ex ]; } - /** - * @return list - */ - private function tagsArray(): array - { - if (trim($this->keywords) === '') { - return []; - } - - return collect(explode(',', $this->keywords)) - ->map(fn(string $tag): string => trim($tag)) - ->filter() - ->unique() - ->values() - ->all(); - } - private function defaultContactIdFor(int $companyId): ?int { if ($companyId <= 0) { diff --git a/resources/views/livewire/admin/press-releases/edit.blade.php b/resources/views/livewire/admin/press-releases/edit.blade.php index 9ccb7da8..fb989143 100644 --- a/resources/views/livewire/admin/press-releases/edit.blade.php +++ b/resources/views/livewire/admin/press-releases/edit.blade.php @@ -24,6 +24,8 @@ use Livewire\Attributes\Title; use Livewire\Volt\Component; new #[Layout('components.layouts.app'), Title('Pressemitteilung bearbeiten')] class extends Component { + use \App\Livewire\Concerns\InteractsWithPressReleaseTags; + #[Locked] public int $id; @@ -159,39 +161,6 @@ new #[Layout('components.layouts.app'), Title('Pressemitteilung bearbeiten')] cl unset($this->presubmitChecks); } - public function addTag(string $tag): void - { - $tag = trim($tag); - - if ($tag === '') { - return; - } - - $existing = $this->tagsArray(); - - if (count($existing) >= 5) { - return; - } - - if (in_array($tag, $existing, true)) { - return; - } - - $existing[] = $tag; - $this->keywords = implode(', ', $existing); - - unset($this->tags, $this->presubmitChecks); - } - - public function removeTag(string $tag): void - { - $existing = array_values(array_filter($this->tagsArray(), fn(string $existingTag): bool => $existingTag !== $tag)); - - $this->keywords = implode(', ', $existing); - - unset($this->tags, $this->presubmitChecks); - } - /** * @return array> */ @@ -611,23 +580,6 @@ new #[Layout('components.layouts.app'), Title('Pressemitteilung bearbeiten')] cl ]; } - /** - * @return list - */ - private function tagsArray(): array - { - if (trim($this->keywords) === '') { - return []; - } - - return collect(explode(',', $this->keywords)) - ->map(fn(string $tag): string => trim($tag)) - ->filter() - ->unique() - ->values() - ->all(); - } - private function defaultContactIdFor(int $companyId): ?int { if ($companyId <= 0) {