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,58 +69,76 @@ 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))
.withEnvironments()
case let .editStatusEditor(status): case let .editStatusEditor(status):
StatusEditor.MainView(mode: .edit(status: status)) StatusEditor.MainView(mode: .edit(status: status))
.withEnvironments()
case let .quoteStatusEditor(status): case let .quoteStatusEditor(status):
StatusEditor.MainView(mode: .quote(status: status)) StatusEditor.MainView(mode: .quote(status: status))
.withEnvironments()
case let .mentionStatusEditor(account, visibility): case let .mentionStatusEditor(account, visibility):
StatusEditor.MainView(mode: .mention(account: account, visibility: visibility)) StatusEditor.MainView(mode: .mention(account: account, visibility: visibility))
.withEnvironments()
case .listCreate: case .listCreate:
ListCreateView() ListCreateView()
.withEnvironments()
case let .listEdit(list): case let .listEdit(list):
ListEditView(list: list) ListEditView(list: list)
.withEnvironments()
case let .listAddAccount(account): case let .listAddAccount(account):
ListAddAccountView(account: account) ListAddAccountView(account: account)
.withEnvironments()
case .addAccount: case .addAccount:
AddAccountView() AddAccountView()
.withEnvironments()
case .addRemoteLocalTimeline: case .addRemoteLocalTimeline:
AddRemoteTimelineView() AddRemoteTimelineView()
.withEnvironments()
case .addTagGroup: case .addTagGroup:
EditTagGroupView() EditTagGroupView()
.withEnvironments()
case let .statusEditHistory(status): case let .statusEditHistory(status):
StatusEditHistoryView(statusId: status) StatusEditHistoryView(statusId: status)
.withEnvironments()
case .settings: case .settings:
SettingsTabs(popToRootTab: .constant(.settings), isModal: true) SettingsTabs(popToRootTab: .constant(.settings), isModal: true)
.withEnvironments()
.preferredColorScheme(Theme.shared.selectedScheme == .dark ? .dark : .light) .preferredColorScheme(Theme.shared.selectedScheme == .dark ? .dark : .light)
case .accountPushNotficationsSettings: case .accountPushNotficationsSettings:
if let subscription = PushNotificationsService.shared.subscriptions.first(where: { $0.account.token == AppAccountsManager.shared.currentAccount.oauthToken }) { if let subscription = PushNotificationsService.shared.subscriptions.first(where: { $0.account.token == AppAccountsManager.shared.currentAccount.oauthToken }) {
NavigationSheet { PushNotificationsView(subscription: subscription) } NavigationSheet { PushNotificationsView(subscription: subscription) }
.withEnvironments()
} else { } else {
EmptyView() EmptyView()
} }
case .about: case .about:
NavigationSheet { AboutView() } NavigationSheet { AboutView() }
.withEnvironments()
case .support: case .support:
NavigationSheet { SupportAppView() } NavigationSheet { SupportAppView() }
.withEnvironments()
case let .report(status): case let .report(status):
ReportView(status: status) ReportView(status: status)
.withEnvironments()
case let .shareImage(image, status): case let .shareImage(image, status):
ActivityView(image: image, status: status) ActivityView(image: image, status: status)
.withEnvironments()
case let .editTagGroup(tagGroup, onSaved): case let .editTagGroup(tagGroup, onSaved):
EditTagGroupView(tagGroup: tagGroup, onSaved: onSaved) EditTagGroupView(tagGroup: tagGroup, onSaved: onSaved)
.withEnvironments()
case .timelineContentFilter: case .timelineContentFilter:
NavigationSheet { TimelineContentFilterView() } NavigationSheet { TimelineContentFilterView() }
} .presentationDetents([.medium])
}
.withEnvironments() .withEnvironments()
} }
} }
}
func withEnvironments() -> some View { func withEnvironments() -> some View {
environment(CurrentAccount.shared) environment(CurrentAccount.shared)