mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-04-27 15:17:38 +00:00
- Move worktree toggle button inside responsive container - Button now properly hides when compact menu is shown - Prevents redundant display of same functionality on mobile
54 lines
2 KiB
Swift
54 lines
2 KiB
Swift
import SwiftUI
|
|
|
|
/// A help icon with tooltip for explaining settings
|
|
struct HelpTooltip: View {
|
|
let text: String
|
|
@State private var isHovering = false
|
|
|
|
var body: some View {
|
|
Image(systemName: "questionmark.circle")
|
|
.foregroundColor(.secondary)
|
|
.imageScale(.small)
|
|
.help(text)
|
|
.onHover { hovering in
|
|
isHovering = hovering
|
|
}
|
|
.scaleEffect(isHovering ? 1.1 : 1.0)
|
|
.animation(.easeInOut(duration: 0.1), value: isHovering)
|
|
}
|
|
}
|
|
|
|
/// Notification setting descriptions
|
|
enum NotificationHelp {
|
|
static let sessionStarts = "Get notified when a new terminal session begins. Useful for monitoring when someone starts using your shared terminal."
|
|
|
|
static let sessionEnds = "Get notified when a terminal session closes. Shows exit code if the session crashed or exited abnormally."
|
|
|
|
static let commandsComplete = "Get notified when commands that take longer than 3 seconds finish. Perfect for long builds, tests, or data processing tasks."
|
|
|
|
static let commandsFail = "Get notified when any command exits with an error (non-zero exit code). Helps you quickly spot and fix problems."
|
|
|
|
static let terminalBell = "Get notified when programs output the terminal bell character (^G). Common in vim alerts, IRC mentions, and completion notifications."
|
|
|
|
static let claudeTurn = "Get notified when Claude AI finishes responding and is waiting for your input. Automatically detects Claude CLI sessions and tracks activity transitions."
|
|
}
|
|
|
|
#Preview {
|
|
VStack(alignment: .leading, spacing: 20) {
|
|
HStack {
|
|
Text("Session starts")
|
|
HelpTooltip(text: NotificationHelp.sessionStarts)
|
|
}
|
|
|
|
HStack {
|
|
Text("Commands complete (> 3 seconds)")
|
|
HelpTooltip(text: NotificationHelp.commandsComplete)
|
|
}
|
|
|
|
HStack {
|
|
Text("Claude turn notifications")
|
|
HelpTooltip(text: NotificationHelp.claudeTurn)
|
|
}
|
|
}
|
|
.padding()
|
|
}
|