Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
e03689f38c
commit
7b3a8903a8
@ -36,7 +36,8 @@ struct TopOverlayView: View {
|
||||
let _ = print("TopOverlayView: Rendering. Alarms count: \(alarmService.alarms.count), Enabled: \(alarmService.enabledAlarms.count)")
|
||||
|
||||
VStack(spacing: Design.Spacing.small) {
|
||||
HStack {
|
||||
// Row 1: Date and Battery (Standard Status Bar positions)
|
||||
HStack(alignment: .center) {
|
||||
if showDate {
|
||||
DateOverlayView(color: color, opacity: opacity, dateFormat: dateFormat)
|
||||
}
|
||||
@ -52,8 +53,10 @@ struct TopOverlayView: View {
|
||||
)
|
||||
}
|
||||
}
|
||||
.padding(.top, Design.Spacing.xxSmall) // Minimal top padding for status bar alignment
|
||||
|
||||
HStack(alignment: .top) {
|
||||
// Row 2: Alarms and Noise Controls (Below Dynamic Island)
|
||||
HStack(alignment: .center) {
|
||||
if showNextAlarm, let nextAlarm = alarmService.enabledAlarms.sorted(by: { $0.time.nextOccurrence() < $1.time.nextOccurrence() }).first {
|
||||
NextAlarmOverlay(
|
||||
alarmTime: nextAlarm.time.nextOccurrence(),
|
||||
@ -80,6 +83,7 @@ struct TopOverlayView: View {
|
||||
)
|
||||
}
|
||||
}
|
||||
.padding(.top, Design.Spacing.xSmall) // Extra spacing to clear Dynamic Island in portrait
|
||||
}
|
||||
.padding(.horizontal, Design.Spacing.medium)
|
||||
.padding(.vertical, Design.Spacing.small)
|
||||
|
||||
@ -34,6 +34,8 @@ struct OnboardingPermissionsPage: View {
|
||||
.typography(.heroBold)
|
||||
.foregroundStyle(AppTextColors.primary)
|
||||
.multilineTextAlignment(.center)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.padding(.horizontal, Design.Spacing.large)
|
||||
|
||||
Text("Works in silent mode, Focus mode, and even when your phone is locked.")
|
||||
.typography(.body)
|
||||
|
||||
@ -21,35 +21,43 @@ struct KeepAwakePrompt: View {
|
||||
|
||||
VStack(spacing: Design.Spacing.small) {
|
||||
Text("Keep Awake for Alarms")
|
||||
.typography(.title2)
|
||||
.typography(.title2Bold)
|
||||
.foregroundStyle(AppTextColors.primary)
|
||||
.multilineTextAlignment(.center)
|
||||
|
||||
Text("Enable Keep Awake so your alarm can play loudly and show the full screen while TheNoiseClock stays open.")
|
||||
.typography(.body)
|
||||
.foregroundStyle(AppTextColors.secondary)
|
||||
.multilineTextAlignment(.center)
|
||||
.padding(.horizontal, Design.Spacing.small)
|
||||
}
|
||||
|
||||
VStack(spacing: Design.Spacing.small) {
|
||||
VStack(spacing: Design.Spacing.medium) {
|
||||
Button(action: onEnable) {
|
||||
Text("Enable Keep Awake")
|
||||
.font(Typography.headingEmphasis.font)
|
||||
.foregroundStyle(.white)
|
||||
.frame(maxWidth: .infinity)
|
||||
.frame(height: 50)
|
||||
.background(AppAccent.primary)
|
||||
.clipShape(.rect(cornerRadius: Design.CornerRadius.medium))
|
||||
}
|
||||
.buttonStyle(color: AppAccent.primary)
|
||||
|
||||
Button(action: onDismiss) {
|
||||
Text("Not Now")
|
||||
.frame(maxWidth: .infinity)
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
.font(Typography.bodyEmphasis.font)
|
||||
.foregroundStyle(AppTextColors.secondary)
|
||||
.frame(maxWidth: .infinity)
|
||||
.frame(height: 44)
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding(Design.Spacing.xLarge)
|
||||
.frame(maxWidth: .infinity)
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||||
.background(AppSurface.primary)
|
||||
.presentationDetents([.medium])
|
||||
.presentationDetents([.height(340)])
|
||||
.presentationCornerRadius(Design.CornerRadius.xxLarge)
|
||||
.presentationBackground(AppSurface.primary)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user