Files
comaps/iphone/Maps/UI/New Group/MapPositionButton.swift
Yannik Bloscheck bff4b2348a [ios] WIP: Switching main/map buttons to SwiftUI
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-07 21:07:34 +01:00

40 lines
1.1 KiB
Swift

import SwiftUI
/// View for a map position mode button
struct MapPositionButton: View {
// MARK: Properties
/// The mode
@State private var mode: MapPositionButton.Mode = .locate
/// The publisher to know when to stop showing the Safari view for the login form
private let switchPositionModePublisher = NotificationCenter.default.publisher(for: Controls.switchPositionModeNotificationName)
/// The actual view
var body: some View {
Button {
Controls.switchToNextPositionMode()
} label: {
Label {
Text(mode.description)
} icon: {
if mode == .following || mode == .followingAndRotated {
mode.image
.foregroundStyle(Color.BaseColors.blue)
} else {
mode.image
}
}
}
.buttonStyle(FloatingButtonStyle())
.onAppear {
mode = Controls.positionMode
}
.onReceive(switchPositionModePublisher) { _ in
mode = Controls.positionMode
}
}
}