Post editor: Replace visibility menu with a bottom sheet to close #58

This commit is contained in:
Thomas Ricouard 2023-01-11 07:33:18 +01:00
parent 77ad9afb85
commit 54ac3d5adb

View File

@ -5,10 +5,12 @@ import Models
import Env
struct StatusEditorAccessoryView: View {
@EnvironmentObject private var theme: Theme
@EnvironmentObject private var currentInstance: CurrentInstance
@FocusState<Bool>.Binding var isSpoilerTextFocused: Bool
@ObservedObject var viewModel: StatusEditorViewModel
@State private var isPrivacySheetDisplayed: Bool = false
var body: some View {
VStack(spacing: 0) {
@ -61,18 +63,28 @@ struct StatusEditorAccessoryView: View {
}
private var visibilityMenu: some View {
Menu {
Section("Post visibility") {
ForEach(Models.Visibility.allCases, id: \.self) { visibility in
Button {
viewModel.visibility = visibility
} label: {
Label(visibility.title, systemImage: visibility.iconName)
}
}
}
Button {
isPrivacySheetDisplayed = true
} label: {
Image(systemName: viewModel.visibility.iconName)
}
.sheet(isPresented: $isPrivacySheetDisplayed) {
Form {
Section("Post visibility") {
ForEach(Models.Visibility.allCases, id: \.self) { visibility in
Button {
viewModel.visibility = visibility
isPrivacySheetDisplayed = false
} label: {
Label(visibility.title, systemImage: visibility.iconName)
}
}
.listRowBackground(theme.primaryBackgroundColor)
}
}
.presentationDetents([.height(300)])
.scrollContentBackground(.hidden)
.background(theme.secondaryBackgroundColor)
}
}
}