# Zeego Kompatibilitätsprobleme und Alternativen-Analyse ## Zusammenfassung Datum: 30. September 2025 Unser Projekt nutzt aktuell Zeego v3.0.6 für Context Menus und Dropdown Menus. Mit dem Upgrade auf Expo SDK 54 (React Native 0.81) und iOS 26 treten kritische Kompatibilitätsprobleme auf, die die App am Starten hindern. ## Aktueller Fehler ``` Unable to resolve module react-native-ios-context-menu from /Users/tillschneider/Documents/__00__Code/memoro/node_modules/zeego/lib/module/menu/create-ios-menu/index.ios.js: react-native-ios-context-menu could not be found within the project ``` ## Problemanalyse ### Zeego Kompatibilitätsstatus **Zeego Version 3.x Kompatibilität:** - ✅ React Native: 0.76 oder 0.77 - ✅ Expo SDK: 52+ - ❌ React Native 0.81 (SDK 54): **Nicht offiziell unterstützt** - ❌ iOS 26: **Keine offizielle Kompatibilität** **Abhängigkeiten:** - `react-native-menu`: 1.2.2 - `react-native-ios-context-menu`: 3.1.0 - `react-native-ios-utilities`: 5.1.2 ### Ursache des Problems Laut GitHub Issue #173 auf dem Zeego Repository: 1. **Pod Install Fehler:** - `Unable to find a specification for RCT-Folly (= 2022.05.16.00) depended upon by react-native-ios-context-menu` - `Unable to find a specification for RCT-Folly (= 2022.05.16.00) depended upon by react-native-ios-utilities` 2. **Status:** - Der Maintainer (nandorojo) hat ein PR im upstream Library gemerged - Wartet auf Veröffentlichung der Fixes - **react-native-ios-context-menu befindet sich im "Maintenance Mode"** - der Autor macht aktuell kein OSS mehr ### Expo SDK 54 Spezifika - React Native 0.81 mit precompiled XCFrameworks für iOS - Xcode 26 erforderlich - Node.js 20.19.4+ erforderlich - **RCT-Folly Versionskonflikt** mit älteren nativen Dependencies ## Aktuelle Zeego-Nutzung im Projekt Zeego wird an **15 Stellen** im Projekt verwendet: ### Context Menus (4 Verwendungen) - `components/organisms/Memory.tsx` - `components/molecules/PromptPreview.tsx` - `components/molecules/MemoPreview.tsx` ### Dropdown Menus (11 Verwendungen) - `components/molecules/TableOfContentsMenu.tsx` - `components/atoms/Pill.tsx` - `features/subscription/SubscriptionMenu.tsx` - `features/menus/MemoHeaderMenu.tsx` - `features/menus/MemoMenu.tsx` - `features/menus/HeaderMenu.tsx` - Weitere Komponenten ## Alternative Lösungen - Detaillierte Analyse ### Option 1: Warten auf Zeego-Update 🕐 **Beschreibung:** Warten, bis Zeego offiziell Expo SDK 54 und React Native 0.81 unterstützt. **Vorteile:** - ✅ Keine Code-Änderungen nötig - ✅ Behält bestehende API und Funktionalität - ✅ Native Performance bleibt erhalten **Nachteile:** - ❌ Unbekannter Zeitrahmen - ❌ `react-native-ios-context-menu` ist im Maintenance Mode (Autor macht kein OSS mehr) - ❌ Blockiert SDK 54 Upgrade - ❌ Keine iOS 26 Features verfügbar - ❌ Sicherheits- und Performance-Updates von SDK 54 nicht verfügbar **Zeitaufwand:** 0 Stunden (aber unbestimmte Wartezeit) **Risiko:** Hoch - keine Garantie für zeitnahe Lösung --- ### Option 2: Expo/React Native Action Sheet 📱 **Beschreibung:** Ersetze Dropdown- und Context-Menus durch `@expo/react-native-action-sheet` (bereits im Projekt als Dependency). **Vorteile:** - ✅ **Bereits im Projekt vorhanden** (`@expo/react-native-action-sheet@^4.1.1`) - ✅ Offiziell von Expo maintained - ✅ 100% Expo SDK 54 kompatibel - ✅ Funktioniert mit Expo Go - ✅ Native iOS und Android UIs - ✅ Einfache API - ✅ Keine zusätzlichen Dependencies **Nachteile:** - ❌ **Limitierte Funktionalität** - keine verschachtelten Menüs, keine Icons, keine Checkboxen - ❌ Andere UX - Modal von unten statt Context Menu - ❌ Funktioniert nicht auf Web (nur mobil) - ❌ Keine Context Menu Gesten (Long Press) **Beispiel Migration:** ```tsx // Vorher (Zeego) import * as DropdownMenu from 'zeego/dropdown-menu';