diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift index 766fb6840..3eed0e2d0 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewIOS.swift @@ -606,12 +606,7 @@ struct AnimatingCellHeight: AnimatableModifier { var body: some View { let horizontalInset = CGFloat(UIDevice.isIPad ? 20 : 10) VStack(spacing: 0) { - if viewModel.showLoadingBar { - ShimmeringLoader() - } else { - Spacer(minLength: 2) - } - + Color.systemBackground.frame(height: 1) ScrollViewReader { reader in List(selection: $selection) { Section(content: { @@ -851,12 +846,7 @@ struct AnimatingCellHeight: AnimatableModifier { var body: some View { VStack(alignment: .leading) { - if viewModel.showLoadingBar { - ShimmeringLoader() - } else { - Spacer(minLength: 2) - } - + Color.systemBackground.frame(height: 1) filtersHeader .onAppear { withAnimation { diff --git a/apple/OmnivoreKit/Sources/Views/FeedItem/LibraryItemCard.swift b/apple/OmnivoreKit/Sources/Views/FeedItem/LibraryItemCard.swift index ac052ab9e..ee064fc15 100644 --- a/apple/OmnivoreKit/Sources/Views/FeedItem/LibraryItemCard.swift +++ b/apple/OmnivoreKit/Sources/Views/FeedItem/LibraryItemCard.swift @@ -256,27 +256,16 @@ public struct LibraryItemCard: View { } } } else { - fallbackImage + Color.clear + .frame(width: 50, height: 75) + .cornerRadius(5) + .padding(.top, 2) } } .padding(.top, 10) .cornerRadius(5) } - var fallbackImage: some View { - HStack { - Text(item.unwrappedTitle.prefix(1)) - .font(Font.system(size: 32, weight: .bold)) - .frame(alignment: .bottomLeading) - .foregroundColor(Gradient.randomColor(str: item.unwrappedTitle, offset: 1)) - } - .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(Gradient.randomColor(str: item.unwrappedTitle, offset: 0)) - .background(LinearGradient(gradient: Gradient(fromStr: item.unwrappedTitle)!, startPoint: .top, endPoint: .bottom)) - .cornerRadius(5) - .frame(width: 50, height: 75) - } - var bylineStr: String { // It seems like it could be cleaner just having author, instead of // concating, maybe we fall back diff --git a/apple/OmnivoreKit/Sources/Views/ShimmerView.swift b/apple/OmnivoreKit/Sources/Views/ShimmerView.swift deleted file mode 100644 index b977259f7..000000000 --- a/apple/OmnivoreKit/Sources/Views/ShimmerView.swift +++ /dev/null @@ -1,54 +0,0 @@ -import SwiftUI - -public struct ShimmeringLoader: View { - @State private var phase: CGFloat = 0 - - public init() {} - - public var body: some View { - ZStack { - Color.systemBackground - Color.appGraySolid - .contentShape(Rectangle()) - .modifier(AnimatedMask(phase: phase).animation( - Animation.linear(duration: 2.0) - .repeatForever(autoreverses: false) - )) - .onAppear { phase = 0.8 } - } - .frame(height: 2) - .frame(maxWidth: .infinity) - } - - /// An animatable modifier to interpolate between `phase` values. - struct AnimatedMask: AnimatableModifier { - var phase: CGFloat = 0 - - var animatableData: CGFloat { - get { phase } - set { phase = newValue } - } - - func body(content: Content) -> some View { - content - .mask(GradientMask(phase: phase).scaleEffect(3)) - } - } - - /// An animatable gradient between transparent and opaque to use as mask. - /// The `phase` parameter shifts the gradient, moving the opaque band. - struct GradientMask: View { - let phase: CGFloat - let centerColor = Color.appGraySolid - let edgeColor = Color.clear - - var body: some View { - LinearGradient(gradient: - Gradient(stops: [ - .init(color: edgeColor, location: phase), - .init(color: centerColor, location: phase + 0.1), - .init(color: edgeColor, location: phase + 0.2) - ]), startPoint: .leading, endPoint: .trailing) - } - } -}