| struct WatchHomeView: View {
var body: some View {
VStack(spacing: 7) {
Text("SPOTS")
.font(.system(size: 13, weight: .semibold))
.foregroundColor(lavender)
.padding(.top, 2)
// ── Row 1: Schedule · Status · Bus ────────────────────────
HStack(spacing: 5) {
NavigationLink(destination: WatchScheduleView()) {
VStack(spacing: 4) {
circleIcon("tram.fill",
color: Color(red: 0, green: 0.224, blue: 0.651),
size: 18)
Text("Schedule")
.font(.system(size: 9, weight: .semibold))
.foregroundColor(.primary)
}
.frame(maxWidth: .infinity)
.padding(.vertical, 6)
}
.buttonStyle(.bordered)
.tint(.clear)
NavigationLink(destination: WatchStatusView()) {
VStack(spacing: 4) {
circleIcon("antenna.radiowaves.left.and.right",
color: .cyan,
size: 18)
Text("Status")
.font(.system(size: 9, weight: .semibold))
.foregroundColor(.primary)
}
.frame(maxWidth: .infinity)
.padding(.vertical, 6)
}
.buttonStyle(.bordered)
.tint(.clear)
NavigationLink(destination: WatchBusView()) {
VStack(spacing: 4) {
circleIcon("bus.fill",
color: Color(red: 0, green: 0.224, blue: 0.651),
size: 18)
Text("Bus")
.font(.system(size: 9, weight: .semibold))
.foregroundColor(.primary)
}
.frame(maxWidth: .infinity)
.padding(.vertical, 6)
}
.buttonStyle(.bordered)
.tint(.clear)
}
// ── Row 2: Sites · Shows · Food ───────────────────────────
HStack(spacing: 5) {
NavigationLink(destination: WatchSitesView()) {
VStack(spacing: 4) {
circleIcon("mappin", color: .orange, size: 20)
Text("Sites")
.font(.system(size: 10, weight: .medium))
.foregroundColor(.primary)
}
.frame(maxWidth: .infinity)
.padding(.vertical, 5)
}
.buttonStyle(.bordered)
.tint(.clear)
NavigationLink(destination: WatchShowsView()) {
VStack(spacing: 4) {
circleIcon("theatermasks.fill", color: .purple, size: 20)
Text("Shows")
.font(.system(size: 10, weight: .medium))
.foregroundColor(.primary)
}
.frame(maxWidth: .infinity)
.padding(.vertical, 5)
}
.buttonStyle(.bordered)
.tint(.clear)
NavigationLink(destination: WatchFoodView()) {
VStack(spacing: 4) {
circleIcon("fork.knife", color: .green, size: 20)
Text("Food")
.font(.system(size: 10, weight: .medium))
.foregroundColor(.primary)
}
.frame(maxWidth: .infinity)
.padding(.vertical, 5)
}
.buttonStyle(.bordered)
.tint(.clear)
}
}
.padding(.horizontal, 5)
}
} | `WatchHomeView` struct | Defines the `WatchHomeView` struct. Conforms to View. |