Atoll/DynamicIsland/components/Onboarding/OnboardingFinishView.swift
2025-10-05 22:25:43 +05:30

74 lines
2.2 KiB
Swift

//
// OnboardingFinishView.swift
// DynamicIsland
//
// Created by Alexander on 2025-06-23.
//
import SwiftUI
struct OnboardingFinishView: View {
let onFinish: () -> Void
let onOpenSettings: () -> Void
var body: some View {
VStack(spacing: 20) {
Spacer()
Image(systemName: "sparkles")
.font(.system(size: 60))
.foregroundColor(.accentColor)
.padding()
Text("You're All Set!")
.font(.largeTitle)
.fontWeight(.bold)
Text("You can now enjoy the app. If you want to tweak things further, you can always visit the settings.")
.font(.body)
.foregroundColor(.secondary)
.multilineTextAlignment(.center)
.padding(.horizontal, 40)
Spacer()
Spacer()
VStack(spacing: 12) {
Button(action: onOpenSettings) {
Label("Customize in Settings", systemImage: "gear")
.controlSize(.large)
}
.controlSize(.large)
Button("Finish", action: onFinish)
.buttonStyle(.borderedProminent)
.controlSize(.large)
.keyboardShortcut(.defaultAction)
// Privacy Policy Link
Button(action: {
if let url = URL(string: "https://ebullioscopic.github.io/DynamicIsland/privacy-policy") {
NSWorkspace.shared.open(url)
}
}) {
Text("Privacy Policy")
.font(.caption)
.foregroundColor(.secondary)
}
.buttonStyle(.plain)
.padding(.top, 4)
}
.padding(24)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(
VisualEffectView(material: .underWindowBackground, blendingMode: .behindWindow)
.ignoresSafeArea()
)
}
}
#Preview {
OnboardingFinishView(onFinish: { }, onOpenSettings: { })
}