summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShav Kinderlehrer <[email protected]>2023-12-24 02:36:14 -0500
committerShav Kinderlehrer <[email protected]>2023-12-24 02:36:14 -0500
commit9da269a6ab44869e41a8b005836c3479424ae538 (patch)
treee0efee5bc9e32e739aac19721db5ac727004cb80
parent0798bb71414e7eb77c14e3b46afa9a4eff9d8d80 (diff)
downloadjel-9da269a6ab44869e41a8b005836c3479424ae538.tar.gz
jel-9da269a6ab44869e41a8b005836c3479424ae538.zip
Did something really awful to make bad effects
TODO: Overhaul all of this
-rw-r--r--Jel/Views/Library/Item/ItemHeaderView.swift14
-rw-r--r--Jel/Views/Library/Item/ItemMovieView.swift49
-rw-r--r--Jel/Views/Library/LibraryIconView.swift10
3 files changed, 58 insertions, 15 deletions
diff --git a/Jel/Views/Library/Item/ItemHeaderView.swift b/Jel/Views/Library/Item/ItemHeaderView.swift
index 1ff25c7..d694c13 100644
--- a/Jel/Views/Library/Item/ItemHeaderView.swift
+++ b/Jel/Views/Library/Item/ItemHeaderView.swift
@@ -15,7 +15,8 @@ struct ItemHeaderView: View {
.init(color: .clear, location: 0),
.init(color: .black, location: 0.3),
.init(color: .black, location: 0.7),
- .init(color: .clear, location: 1)
+
+ .init(color: .clear, location: 1)
]), startPoint: .bottom, endPoint: .top)
var body: some View {
@@ -24,7 +25,7 @@ struct ItemHeaderView: View {
.hideCaption()
.setCornerRadius(0)
.mask(overlayGradient)
- .padding(.top, 50)
+// .padding(.top, 50)
.background {
LibraryIconView(library: item, imageType: "Backdrop", contentMode: .fill)
.hideCaption()
@@ -33,17 +34,18 @@ struct ItemHeaderView: View {
}
HStack {
- LibraryIconView(library: item, imageType: "Logo", width: 150)
+ LibraryIconView(library: item, imageType: "Logo", width: 200, height: 100, placeHolder: AnyView(Text(item.name ?? "Unknown").font(.title).bold().truncationMode(.middle)))
.hideCaption()
.setCornerRadius(0)
.shadow(radius: 10)
Spacer()
}
+ .frame(alignment: .leading)
.padding(.leading)
}
}
}
-#Preview {
- ItemHeaderView(item: BaseItemDto())
-}
+// #Preview {
+// ItemHeaderView(item: BaseItemDto())
+// }
diff --git a/Jel/Views/Library/Item/ItemMovieView.swift b/Jel/Views/Library/Item/ItemMovieView.swift
index 9c95923..68ba1b2 100644
--- a/Jel/Views/Library/Item/ItemMovieView.swift
+++ b/Jel/Views/Library/Item/ItemMovieView.swift
@@ -15,21 +15,56 @@ struct ItemMovieView: View {
@State var item: BaseItemDto
@State var loading: Bool = true
+ @State var navigationTitle: String = ""
+
var body: some View {
ScrollView {
+ // ItemHeaderView(item: item)
+ // .scrollTransition {content, phase in
+ // content
+ // .scaleEffect(phase.isIdentity ? 1 : 2)
+ // .opacity(phase.isIdentity ? 1 : 0.1)
+ // .blur(radius: phase.isIdentity ? 0 : 50)
+ // }
ItemHeaderView(item: item)
+ .opacity(0) // this is the jankiest thing in existence
+ .background {
+ GeometryReader {geo in
+ ItemHeaderView(item: item)
+ .onChange(of: geo.frame(in: .global).minY) {
+ navigationTitle = geo.frame(in: .global).minY < 0 ? item.name ?? "Unknown" : ""
+ }
+ .scaleEffect(1 + (geo.frame(in: .global).minY > 0 ? geo.frame(in: .global).minY * 0.001 : 0))
+ .offset(y: 1 + (geo.frame(in: .global).minY > 0 ? geo.frame(in: .global).minY * 0.001 : 0))
+ .scrollTransition {content, phase in
+ content
+ .scaleEffect(phase.isIdentity ? 1 : 2)
+ .opacity(phase.isIdentity ? 1 : 0.1)
+ .blur(radius: phase.isIdentity ? 0 : 50)
+ }
+ }
+ }
- Text(item.taglines?[0] ?? "Unknown")
- .font(.headline)
- .padding(.top, 20)
-
- Text(item.overview ?? "Unknown")
- .padding()
+ VStack {
+ Text(item.taglines?[0] ?? "Unknown")
+ .font(.headline)
+ .padding(.top, 20)
+
+ Text(item.overview ?? "Unknown")
+ .padding()
+ Text(item.overview ?? "Unknown")
+ .padding()
+ Text(item.overview ?? "Unknown")
+ .padding()
+ Text(item.overview ?? "Unknown")
+ .padding()
+ }
}
.redacted(reason: loading ? .placeholder : [])
.ignoresSafeArea(edges: .top)
+ .scrollIndicators(.hidden)
.toolbarRole(.editor)
- .navigationTitle(item.name ?? "Unknown")
+ .navigationTitle(navigationTitle)
.navigationBarTitleDisplayMode(.inline)
.onAppear {
Task {
diff --git a/Jel/Views/Library/LibraryIconView.swift b/Jel/Views/Library/LibraryIconView.swift
index 7651e56..a3f5b55 100644
--- a/Jel/Views/Library/LibraryIconView.swift
+++ b/Jel/Views/Library/LibraryIconView.swift
@@ -22,6 +22,8 @@ struct LibraryIconView: View {
@State var imageUrl: URL?
@State var contentMode: ContentMode = .fit
+ @State var placeHolder: AnyView?
+
var shouldShowCaption: Bool = true
var imageCornerRadius: CGFloat = 5
var body: some View {
@@ -33,8 +35,12 @@ struct LibraryIconView: View {
} else if state.error != nil {
Color.red
} else {
- Image(uiImage: blurHashImage)
- .resizable()
+ if let content = placeHolder {
+ content
+ } else {
+ Image(uiImage: blurHashImage)
+ .resizable()
+ }
}
}
.aspectRatio(contentMode: contentMode)