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. ---