temp - will revert

This commit is contained in:
Michael Freno
2026-01-18 16:16:19 -05:00
parent dd174d8034
commit 1fc1d00b1e

View File

@@ -27,7 +27,6 @@ struct OnboardingVisualEffectView: NSViewRepresentable {
struct AdditionalModifiersView: View { struct AdditionalModifiersView: View {
@Bindable var settingsManager: SettingsManager @Bindable var settingsManager: SettingsManager
@State private var currentIndex = 0
var body: some View { var body: some View {
ZStack { ZStack {
@@ -48,55 +47,108 @@ struct AdditionalModifiersView: View {
Spacer() Spacer()
// Card Stack - simplified version for now // Main content area with stacking effect
VStack(spacing: 30) { HStack(spacing: 0) {
if currentIndex == 0 { // Smart Mode Card (stacked behind, 50% width, offset 10% from right)
EnforceModeSetupView(settingsManager: settingsManager) ZStack {
.frame(maxWidth: .infinity, maxHeight: .infinity) // Background card with shadow and rounded corners
} else { RoundedRectangle(cornerRadius: 16)
.fill(Color(NSColor.windowBackgroundColor).opacity(0.8))
.shadow(color: Color.black.opacity(0.2), radius: 10, x: 0, y: 4)
.frame(width: 500, height: 500) // 50% of 1000px width
.offset(x: 100) // 10% offset from right (1000 * 0.1 = 100)
// Smart mode content
SmartModeSetupView(settingsManager: settingsManager) SmartModeSetupView(settingsManager: settingsManager)
.frame(maxWidth: .infinity, maxHeight: .infinity) .padding(20)
} }
.frame(maxWidth: .infinity, maxHeight: .infinity)
.zIndex(0)
// Enforce Mode Card (in front)
VStack(spacing: 24) {
SetupHeader(icon: "video.fill", title: "Enforce Mode", color: .accentColor)
Text("Use your camera to ensure you take breaks")
.font(.title3)
.foregroundStyle(.secondary)
.multilineTextAlignment(.center)
.padding(.bottom, 10)
VStack(spacing: 20) {
HStack {
VStack(alignment: .leading, spacing: 4) {
Text("Enable Enforce Mode")
.font(.headline)
Text("Camera activates 3 seconds before lookaway reminders")
.font(.caption)
.foregroundStyle(.secondary)
}
Spacer()
Toggle(
"",
isOn: Binding(
get: {
settingsManager.settings.enforcementMode
},
set: { newValue in
print("🎛️ Toggle changed to: \(newValue)")
settingsManager.settings.enforcementMode = newValue
}
)
)
.labelsHidden()
}
.padding()
.glassEffectIfAvailable(GlassStyle.regular, in: .rect(cornerRadius: 12))
// Camera access status display
HStack {
VStack(alignment: .leading, spacing: 4) {
Text("Camera Access")
.font(.headline)
if CameraAccessService.shared.isCameraAuthorized {
Label("Authorized", systemImage: "checkmark.circle.fill")
.font(.caption)
.foregroundStyle(.green)
} else if let error = CameraAccessService.shared.cameraError {
Label(error.localizedDescription, systemImage: "exclamationmark.triangle.fill")
.font(.caption)
.foregroundStyle(.orange)
} else {
Label("Not authorized", systemImage: "xmark.circle.fill")
.font(.caption)
.foregroundStyle(.secondary)
}
}
Spacer()
if !CameraAccessService.shared.isCameraAuthorized {
Button("Request Access") {
print("📷 Request Access button clicked")
Task { @MainActor in
do {
try await CameraAccessService.shared.requestCameraAccess()
print("✓ Camera access granted via button")
} catch {
print("⚠️ Camera access failed: \(error.localizedDescription)")
}
}
}
.buttonStyle(.bordered)
}
}
.padding()
.glassEffectIfAvailable(GlassStyle.regular, in: .rect(cornerRadius: 12))
}
}
.frame(width: 500) // 50% width
.zIndex(1)
} }
.frame(height: 500)
Spacer() Spacer()
// Navigation Arrows
HStack(spacing: 40) {
Button(action: {
withAnimation(.easeInOut(duration: 0.3)) {
currentIndex = 0
}
}) {
Image(systemName: "chevron.left")
.font(.title2)
.frame(width: 44, height: 44)
.background(Circle().fill(Color.gray.opacity(0.2)))
.foregroundColor(.primary)
}
.disabled(currentIndex == 0)
.buttonStyle(.plain)
Text("\(currentIndex + 1) of 2")
.font(.subheadline)
.foregroundStyle(.secondary)
Button(action: {
withAnimation(.easeInOut(duration: 0.3)) {
currentIndex = 1
}
}) {
Image(systemName: "chevron.right")
.font(.title2)
.frame(width: 44, height: 44)
.background(Circle().fill(Color.gray.opacity(0.2)))
.foregroundColor(.primary)
}
.disabled(currentIndex == 1)
.buttonStyle(.plain)
}
.padding(.bottom, 30)
} }
} }
.frame( .frame(