From 0c071e7ad591c8d93acdcd46b9bf69b4001b137f Mon Sep 17 00:00:00 2001 From: Thomas Ricouard Date: Tue, 17 Jan 2023 07:54:59 +0100 Subject: [PATCH] Activities list: UI improvements --- .../Sources/Notifications/NotificationRowView.swift | 8 ++++++-- .../Status/Sources/Status/Embed/StatusEmbededView.swift | 2 +- .../Sources/Status/Row/StatusMediaPreviewView.swift | 3 +++ Packages/Status/Sources/Status/Row/StatusRowView.swift | 2 +- .../Status/Sources/Status/Row/StatusRowViewModel.swift | 5 ++++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Packages/Notifications/Sources/Notifications/NotificationRowView.swift b/Packages/Notifications/Sources/Notifications/NotificationRowView.swift index 424fe018..49de7a3b 100644 --- a/Packages/Notifications/Sources/Notifications/NotificationRowView.swift +++ b/Packages/Notifications/Sources/Notifications/NotificationRowView.swift @@ -82,8 +82,12 @@ struct NotificationRowView: View { private func makeContent(type: Models.Notification.NotificationType) -> some View { if let status = notification.status { HStack { - StatusRowView(viewModel: .init(status: status, isCompact: true)) - .foregroundColor(type == .mention ? theme.labelColor : .gray) + if type == .mention { + StatusRowView(viewModel: .init(status: status, isCompact: true, showActions: true)) + } else { + StatusRowView(viewModel: .init(status: status, isCompact: true, showActions: false)) + .foregroundColor(.gray) + } Spacer() } } else { diff --git a/Packages/Status/Sources/Status/Embed/StatusEmbededView.swift b/Packages/Status/Sources/Status/Embed/StatusEmbededView.swift index f4983780..7b6b583c 100644 --- a/Packages/Status/Sources/Status/Embed/StatusEmbededView.swift +++ b/Packages/Status/Sources/Status/Embed/StatusEmbededView.swift @@ -17,7 +17,7 @@ public struct StatusEmbededView: View { HStack { VStack(alignment: .leading) { makeAccountView(account: status.reblog?.account ?? status.account) - StatusRowView(viewModel: .init(status: status, isCompact: true)) + StatusRowView(viewModel: .init(status: status, isCompact: true, showActions: false)) } Spacer() } diff --git a/Packages/Status/Sources/Status/Row/StatusMediaPreviewView.swift b/Packages/Status/Sources/Status/Row/StatusMediaPreviewView.swift index b0137987..c1caca75 100644 --- a/Packages/Status/Sources/Status/Row/StatusMediaPreviewView.swift +++ b/Packages/Status/Sources/Status/Row/StatusMediaPreviewView.swift @@ -22,6 +22,9 @@ public struct StatusMediaPreviewView: View { private var imageMaxHeight: CGFloat { if isNotifications { + if UIDevice.current.userInterfaceIdiom == .pad { + return 150 + } return 50 } if theme.statusDisplayStyle == .compact { diff --git a/Packages/Status/Sources/Status/Row/StatusRowView.swift b/Packages/Status/Sources/Status/Row/StatusRowView.swift index fbdf71b6..82ae976b 100644 --- a/Packages/Status/Sources/Status/Row/StatusRowView.swift +++ b/Packages/Status/Sources/Status/Row/StatusRowView.swift @@ -44,7 +44,7 @@ public struct StatusRowView: View { replyView } statusView - if !viewModel.isCompact && !viewModel.isRemote, theme.statusActionsDisplay != .none { + if viewModel.showActions && !viewModel.isRemote, theme.statusActionsDisplay != .none { StatusActionsView(viewModel: viewModel) .padding(.top, 8) .tint(viewModel.isFocused ? theme.tintColor : .gray) diff --git a/Packages/Status/Sources/Status/Row/StatusRowViewModel.swift b/Packages/Status/Sources/Status/Row/StatusRowViewModel.swift index 5fe00284..6f96f019 100644 --- a/Packages/Status/Sources/Status/Row/StatusRowViewModel.swift +++ b/Packages/Status/Sources/Status/Row/StatusRowViewModel.swift @@ -9,6 +9,7 @@ public class StatusRowViewModel: ObservableObject { let isCompact: Bool let isFocused: Bool let isRemote: Bool + let showActions: Bool @Published var favouritesCount: Int @Published var isFavourited: Bool @@ -31,11 +32,13 @@ public class StatusRowViewModel: ObservableObject { public init(status: Status, isCompact: Bool = false, isFocused: Bool = false, - isRemote: Bool = false) { + isRemote: Bool = false, + showActions: Bool = true) { self.status = status self.isCompact = isCompact self.isFocused = isFocused self.isRemote = isRemote + self.showActions = showActions if let reblog = status.reblog { self.isFavourited = reblog.favourited == true self.isReblogged = reblog.reblogged == true