Librechat-Mobile/iosApp/iosApp/ComposeView.swift
Garfie 770603e466 KMP iOS migration
Complete Kotlin Multiplatform migration with iOS parity:
- All 13 modules converted to KMP (commonMain + androidMain + iosMain)
- 100% feature parity: auth, chat, SSE streaming, conversations,
  settings, agents, files, voice input, TTS, OAuth, file picker,
  clipboard paste
- Platform consolidation: DataStore path, SessionCacheCleaner,
  bubble layouts, ChatInput core, MIME types, mention parsing,
  TextField styling, FilterChip components extracted to commonMain
- iOS crash reporting via Kotlin/Native exception hook
- YAML parsing via custom pure-Kotlin parser (zero dependencies)
- Dependency health: Timber removed, kaml replaced, FuzzyWuzzy removed,
  security-crypto stabilized
- CONTRIBUTING.md
- Gradle configuration cache enabled
2026-04-02 19:54:58 -05:00

21 lines
761 B
Swift

import SwiftUI
import Shared
/// Bridges the Compose Multiplatform UI into SwiftUI.
///
/// Wraps `MainViewControllerKt.MainViewController()` which renders
/// the full CMP navigation shell (Chat, Agents, Files, Settings tabs)
/// with all 80+ shared composables.
///
/// Koin must be initialized before this view appears handled in
/// `iOSApp.init()` via `IosKoinHelperKt.startIosKoin()`.
struct LibreChatComposeView: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIViewController {
MainViewControllerKt.MainViewController()
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
// No dynamic updates needed CMP manages its own state internally
}
}