Files
ShhShell/ShhShell/Views/Terminal/ShellView.swift
2025-08-27 11:50:16 +01:00

71 lines
1.5 KiB
Swift

//
// ShellView.swift
// ShhShell
//
// Created by neon443 on 22/06/2025.
//
import SwiftUI
import AudioToolbox
struct ShellView: View {
@ObservedObject var handler: SSHHandler
@ObservedObject var hostsManager: HostsManager
@ObservedObject var container = TerminalViewContainer.shared
@Environment(\.dismiss) var dismiss
var body: some View {
NavigationStack {
ZStack {
hostsManager.selectedTheme.background.suiColor
.ignoresSafeArea(.all)
ZStack {
TerminalController(handler: handler, hostsManager: hostsManager)
// .colorMultiply(Color(red: 0.95, green: 1, blue: 0.95, opacity: 1))
// .colorMultiply(.white)
.overlay {
if hostsManager.settings.filter == .crt {
CRTView()
.opacity(0.75)
// .blendMode(.overlay)
.allowsHitTesting(false)
}
}
}
Group {
Color.gray.opacity(0.2)
.transition(.opacity)
Image(systemName: "bell.fill")
.foregroundStyle(
hostsManager.selectedTheme.background.luminance > 0.5 ?
.black : .white
)
.font(.largeTitle)
.shadow(color: .black, radius: 5)
}
.opacity(handler.bell ? 1 : 0)
.onChange(of: handler.bell) { _ in
guard handler.bell else { return }
if hostsManager.settings.bellHaptic {
Haptic.warning.trigger()
}
if hostsManager.settings.bellSound {
AudioServicesPlaySystemSound(1103)
}
}
}
}
}
}
#Preview {
ShellView(
handler: SSHHandler(host: Host.debug, keyManager: nil),
hostsManager: HostsManager()
)
}