Files
BeamScribe/BeamScribe/BeamScribeApp.swift
jared ce40831933 Initial commit
Add BeamScribe iOS app for real-time transcription with multipeer connectivity.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 22:03:21 -05:00

57 lines
1.7 KiB
Swift

//
// BeamScribeApp.swift
// BeamScribe
//
// Created by Jared on 12/9/25.
//
import SwiftUI
import SwiftData
@main
struct BeamScribeApp: App {
@StateObject private var sessionState = SessionState()
@StateObject private var transcriptionManager = TranscriptionManager()
@StateObject private var multipeerManager = MultipeerManager()
@StateObject private var fileManager = FileStorageManager()
@StateObject private var subscriptionManager = SubscriptionManager()
@Environment(\.scenePhase) private var scenePhase
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(sessionState)
.environmentObject(transcriptionManager)
.environmentObject(multipeerManager)
.environmentObject(fileManager)
.environmentObject(subscriptionManager)
// Enforce light mode for now to ensure consistency
.preferredColorScheme(.light)
.onChange(of: scenePhase) { oldPhase, newPhase in
handleScenePhaseChange(from: oldPhase, to: newPhase)
}
}
}
private func handleScenePhaseChange(from oldPhase: ScenePhase, to newPhase: ScenePhase) {
switch newPhase {
case .active:
// App became active
// Keep awake setting is handled in SettingsView
break
case .inactive:
// App becoming inactive (transitioning)
break
case .background:
// App went to background
// Audio session interruption handling is done in TranscriptionManager
break
@unknown default:
break
}
}
}