Content filter detent

This commit is contained in:
Thomas Ricouard 2024-01-11 20:02:48 +01:00
parent 68b7d469f5
commit 8c68aa711d

View file

@ -69,56 +69,74 @@ extension View {
func withSheetDestinations(sheetDestinations: Binding<SheetDestination?>) -> some View { func withSheetDestinations(sheetDestinations: Binding<SheetDestination?>) -> some View {
sheet(item: sheetDestinations) { destination in sheet(item: sheetDestinations) { destination in
Group { switch destination {
switch destination { case let .replyToStatusEditor(status):
case let .replyToStatusEditor(status): StatusEditor.MainView(mode: .replyTo(status: status))
StatusEditor.MainView(mode: .replyTo(status: status)) .withEnvironments()
case let .newStatusEditor(visibility): case let .newStatusEditor(visibility):
StatusEditor.MainView(mode: .new(visibility: visibility)) StatusEditor.MainView(mode: .new(visibility: visibility))
case let .editStatusEditor(status): .withEnvironments()
StatusEditor.MainView(mode: .edit(status: status)) case let .editStatusEditor(status):
case let .quoteStatusEditor(status): StatusEditor.MainView(mode: .edit(status: status))
StatusEditor.MainView(mode: .quote(status: status)) .withEnvironments()
case let .mentionStatusEditor(account, visibility): case let .quoteStatusEditor(status):
StatusEditor.MainView(mode: .mention(account: account, visibility: visibility)) StatusEditor.MainView(mode: .quote(status: status))
case .listCreate: .withEnvironments()
ListCreateView() case let .mentionStatusEditor(account, visibility):
case let .listEdit(list): StatusEditor.MainView(mode: .mention(account: account, visibility: visibility))
ListEditView(list: list) .withEnvironments()
case let .listAddAccount(account): case .listCreate:
ListAddAccountView(account: account) ListCreateView()
case .addAccount: .withEnvironments()
AddAccountView() case let .listEdit(list):
case .addRemoteLocalTimeline: ListEditView(list: list)
AddRemoteTimelineView() .withEnvironments()
case .addTagGroup: case let .listAddAccount(account):
EditTagGroupView() ListAddAccountView(account: account)
case let .statusEditHistory(status): .withEnvironments()
StatusEditHistoryView(statusId: status) case .addAccount:
case .settings: AddAccountView()
SettingsTabs(popToRootTab: .constant(.settings), isModal: true) .withEnvironments()
.preferredColorScheme(Theme.shared.selectedScheme == .dark ? .dark : .light) case .addRemoteLocalTimeline:
case .accountPushNotficationsSettings: AddRemoteTimelineView()
if let subscription = PushNotificationsService.shared.subscriptions.first(where: { $0.account.token == AppAccountsManager.shared.currentAccount.oauthToken }) { .withEnvironments()
NavigationSheet { PushNotificationsView(subscription: subscription) } case .addTagGroup:
} else { EditTagGroupView()
EmptyView() .withEnvironments()
} case let .statusEditHistory(status):
case .about: StatusEditHistoryView(statusId: status)
NavigationSheet { AboutView() } .withEnvironments()
case .support: case .settings:
NavigationSheet { SupportAppView() } SettingsTabs(popToRootTab: .constant(.settings), isModal: true)
case let .report(status): .withEnvironments()
ReportView(status: status) .preferredColorScheme(Theme.shared.selectedScheme == .dark ? .dark : .light)
case let .shareImage(image, status): case .accountPushNotficationsSettings:
ActivityView(image: image, status: status) if let subscription = PushNotificationsService.shared.subscriptions.first(where: { $0.account.token == AppAccountsManager.shared.currentAccount.oauthToken }) {
case let .editTagGroup(tagGroup, onSaved): NavigationSheet { PushNotificationsView(subscription: subscription) }
EditTagGroupView(tagGroup: tagGroup, onSaved: onSaved) .withEnvironments()
case .timelineContentFilter: } else {
NavigationSheet { TimelineContentFilterView() } EmptyView()
} }
case .about:
NavigationSheet { AboutView() }
.withEnvironments()
case .support:
NavigationSheet { SupportAppView() }
.withEnvironments()
case let .report(status):
ReportView(status: status)
.withEnvironments()
case let .shareImage(image, status):
ActivityView(image: image, status: status)
.withEnvironments()
case let .editTagGroup(tagGroup, onSaved):
EditTagGroupView(tagGroup: tagGroup, onSaved: onSaved)
.withEnvironments()
case .timelineContentFilter:
NavigationSheet { TimelineContentFilterView() }
.presentationDetents([.medium])
.withEnvironments()
} }
.withEnvironments()
} }
} }