From 22a0feeacde22228a4bea2124b209510a70c128d Mon Sep 17 00:00:00 2001
From: Till-JS <101404291+Till-JS@users.noreply.github.com>
Date: Thu, 29 Jan 2026 20:45:28 +0100
Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20docs:=20complete=20consolidation?=
=?UTF-8?q?=20opportunities=20analysis?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Mark remaining tasks as analyzed/completed:
- Sleep function: Already using shared-utils (no duplicate)
- LanguageSelector: Local wrappers are correct architecture (not duplicates)
- AppSlider: Local files are localization wrappers (not duplicates)
- Theme stores: Already committed earlier
All consolidation opportunities have been evaluated.
---
docs/CONSOLIDATION_OPPORTUNITIES.md | 41 +++++++++++++++++++++++------
1 file changed, 33 insertions(+), 8 deletions(-)
diff --git a/docs/CONSOLIDATION_OPPORTUNITIES.md b/docs/CONSOLIDATION_OPPORTUNITIES.md
index f258ad043..b3e507f3f 100644
--- a/docs/CONSOLIDATION_OPPORTUNITIES.md
+++ b/docs/CONSOLIDATION_OPPORTUNITIES.md
@@ -341,11 +341,33 @@ Die 8 lokalen `AppSlider.svelte` Dateien sind **Lokalisierungs-Wrapper**, nicht
---
-### 3.4 NIEDRIG: LanguageSelector (75 LOC)
+### ~~3.4 NIEDRIG: LanguageSelector~~ ✅ ANALYSIERT (Korrekte Architektur)
-**Problem:** 5+ Apps haben identische LanguageSelector Implementierungen.
+**Status:** Die lokalen LanguageSelector sind korrekte Wrapper, keine Duplikate (29.01.2026)
-**Empfehlung:** Verschiebe nach `@manacore/shared-ui/navigation/LanguageSelector.svelte`
+**Ergebnis der Analyse:**
+- 9 Apps haben lokale `LanguageSelector.svelte` (~19 LOC jede)
+- Diese sind **Wrapper** die app-spezifisches i18n mit shared Helpers verbinden
+
+**Architektur ist korrekt:**
+```svelte
+
+
+
+```
+
+**Shared-i18n hat bereits:**
+- `LanguageSelector.svelte` (242 LOC) - Standalone Komponente für andere Anwendungsfälle
+- `getLanguageDropdownItems()` - Helper für PillDropdown-Items
+- `getCurrentLanguageLabel()` - Helper für aktuelle Sprache
+
+**Fazit:** Keine Konsolidierung nötig - jede App braucht ihren eigenen Wrapper für app-spezifisches i18n Setup.
---
@@ -490,13 +512,16 @@ export default createDrizzleConfig({ dbName: 'chat' });
---
-### 5.2 NIEDRIG: Sleep Function Duplikat
+### ~~5.2 NIEDRIG: Sleep Function Duplikat~~ ✅ BEREITS ERLEDIGT
-**Problem:** `sleep()` existiert in:
-- `packages/shared-utils/src/async.ts` (8 LOC)
-- `packages/shared-api-client/src/utils.ts` (3 LOC)
+**Status:** `shared-api-client` importiert bereits `sleep` aus `@manacore/shared-utils` (29.01.2026)
-**Aktion:** Entferne aus shared-api-client, importiere aus shared-utils.
+```typescript
+// packages/shared-api-client/src/client.ts
+import { sleep } from '@manacore/shared-utils';
+```
+
+**Fazit:** Kein Duplikat vorhanden - Dokumentation war veraltet.
---