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
21 lines
761 B
Swift
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
|
|
}
|
|
}
|