mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-06-17 20:50:33 +00:00
* Initial iOS 17 + Observable migration * More Observation * More observation * Checkpoint * Checkpoint * Bump version to 1.8.0 * SwiftFormat * Fix home timeline switch on login * Fix sidebar routerPath * Fixes on detail view * Remove print changes * Simply detail view * More opt * Migrate DisplaySettingsLocalValues * Better post detail transition * Status detail animation finally right * Cleanup
74 lines
2.3 KiB
Swift
74 lines
2.3 KiB
Swift
import Env
|
|
import Models
|
|
import SwiftUI
|
|
|
|
@MainActor
|
|
public extension View {
|
|
func statusEditorToolbarItem(routerPath: RouterPath, visibility: Models.Visibility) -> some ToolbarContent {
|
|
ToolbarItem(placement: .navigationBarTrailing) {
|
|
Button {
|
|
routerPath.presentedSheet = .newStatusEditor(visibility: visibility)
|
|
HapticManager.shared.fireHaptic(of: .buttonPress)
|
|
} label: {
|
|
Image(systemName: "square.and.pencil")
|
|
.accessibilityLabel("accessibility.tabs.timeline.new-post.label")
|
|
.accessibilityInputLabels([
|
|
LocalizedStringKey("accessibility.tabs.timeline.new-post.label"),
|
|
LocalizedStringKey("accessibility.tabs.timeline.new-post.inputLabel1"),
|
|
LocalizedStringKey("accessibility.tabs.timeline.new-post.inputLabel2"),
|
|
])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@MainActor
|
|
public struct StatusEditorToolbarItem: ToolbarContent {
|
|
@Environment(RouterPath.self) private var routerPath
|
|
|
|
let visibility: Models.Visibility
|
|
|
|
public init(visibility: Models.Visibility) {
|
|
self.visibility = visibility
|
|
}
|
|
|
|
public var body: some ToolbarContent {
|
|
ToolbarItem(placement: .navigationBarTrailing) {
|
|
Button {
|
|
Task { @MainActor in
|
|
routerPath.presentedSheet = .newStatusEditor(visibility: visibility)
|
|
HapticManager.shared.fireHaptic(of: .buttonPress)
|
|
}
|
|
} label: {
|
|
Image(systemName: "square.and.pencil")
|
|
.accessibilityLabel("accessibility.tabs.timeline.new-post.label")
|
|
.accessibilityInputLabels([
|
|
LocalizedStringKey("accessibility.tabs.timeline.new-post.label"),
|
|
LocalizedStringKey("accessibility.tabs.timeline.new-post.inputLabel1"),
|
|
LocalizedStringKey("accessibility.tabs.timeline.new-post.inputLabel2"),
|
|
])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@MainActor
|
|
public struct SecondaryColumnToolbarItem: ToolbarContent {
|
|
@Environment(\.isSecondaryColumn) private var isSecondaryColumn
|
|
@EnvironmentObject private var preferences: UserPreferences
|
|
|
|
public init() {}
|
|
|
|
public var body: some ToolbarContent {
|
|
ToolbarItem(placement: isSecondaryColumn ? .navigationBarLeading : .navigationBarTrailing) {
|
|
Button {
|
|
withAnimation {
|
|
preferences.showiPadSecondaryColumn.toggle()
|
|
}
|
|
} label: {
|
|
Image(systemName: "sidebar.right")
|
|
}
|
|
}
|
|
}
|
|
}
|