From 52dad5942e45e8297b4a0f32d34cf2f55f34ce68 Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Sat, 22 Jul 2023 19:55:36 +0200 Subject: [PATCH] Details channel avatar performance improvement --- Shared/Channels/ChannelAvatarView.swift | 17 +++----- .../Player/Video Details/VideoDetails.swift | 40 +++++++++---------- 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/Shared/Channels/ChannelAvatarView.swift b/Shared/Channels/ChannelAvatarView.swift index 90b96928..54462007 100644 --- a/Shared/Channels/ChannelAvatarView.swift +++ b/Shared/Channels/ChannelAvatarView.swift @@ -19,19 +19,14 @@ struct ChannelAvatarView: View { ThumbnailView(url: url) } else { ZStack { - Color(white: 0.6) - .opacity(0.5) + Color("PlaceholderColor") - Group { - if let video, video.isLocal { - Image(systemName: video.localStreamImageSystemName) - } else { - Image(systemName: "play.rectangle") - } + if let video, video.isLocal { + Image(systemName: video.localStreamImageSystemName) + .foregroundColor(.accentColor) + .font(.system(size: 20)) + .contentShape(Rectangle()) } - .foregroundColor(.accentColor) - .font(.system(size: 20)) - .contentShape(Rectangle()) } .onAppear(perform: updateURL) } diff --git a/Shared/Player/Video Details/VideoDetails.swift b/Shared/Player/Video Details/VideoDetails.swift index b97b3f6d..3f185c18 100644 --- a/Shared/Player/Video Details/VideoDetails.swift +++ b/Shared/Player/Video Details/VideoDetails.swift @@ -24,6 +24,7 @@ struct VideoDetails: View { struct ChannelView: View { @ObservedObject private var model = PlayerModel.shared + @Binding var detailsVisibility: Bool var video: Video? { model.videoForDisplay } @@ -33,14 +34,19 @@ struct VideoDetails: View { guard let channel = video?.channel else { return } NavigationModel.shared.openChannel(channel, navigationStyle: .sidebar) } label: { - ChannelAvatarView( - channel: video?.channel, - video: video - ) - .frame(maxWidth: 40, maxHeight: 40) - .padding(.trailing, 5) + if detailsVisibility { + ChannelAvatarView( + channel: video?.channel, + video: video + ) + } else { + Circle() + .foregroundColor(Color(white: 0.6).opacity(0.5)) + } } + .frame(width: 40, height: 40) .buttonStyle(.plain) + .padding(.trailing, 5) VStack(alignment: .leading, spacing: 2) { HStack { @@ -56,18 +62,14 @@ struct VideoDetails: View { } if let video, !video.isLocal { - Group { - Text("•") + HStack(spacing: 2) { + Image(systemName: "person.2.fill") - HStack(spacing: 2) { - Image(systemName: "person.2.fill") - - if let channel = model.videoForDisplay?.channel { - if let subscriptions = channel.subscriptionsString { - Text(subscriptions) - } else { - Text("1234").redacted(reason: .placeholder) - } + if let channel = model.videoForDisplay?.channel { + if let subscriptions = channel.subscriptionsString { + Text(subscriptions) + } else { + Text("1234").redacted(reason: .placeholder) } } } @@ -94,8 +96,6 @@ struct VideoDetails: View { HStack(spacing: 4) { publishedDateSection - Text("•") - HStack(spacing: 4) { if model.videoBeingOpened != nil || video?.viewsCount != nil { Image(systemName: "eye") @@ -194,7 +194,7 @@ struct VideoDetails: View { VStack(alignment: .leading, spacing: 0) { TitleView() if video != nil, !video!.isLocal { - ChannelView() + ChannelView(detailsVisibility: $detailsVisibility) .layoutPriority(1) .padding(.bottom, 6) }