From 181d894df0e5c19be8c897eddbf99f030cec5334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20D=E2=80=99Aquino?= Date: Mon, 18 Mar 2024 22:21:35 +0000 Subject: [PATCH] Improve SwiftUI previews around full-screen carousel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a minor SwiftUI preview improvement Signed-off-by: Daniel D’Aquino Link: 20240318222048.14226-5-daniel@daquino.me Signed-off-by: William Casarin --- .../Views/Images/FullScreenCarouselView.swift | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/damus/Views/Images/FullScreenCarouselView.swift b/damus/Views/Images/FullScreenCarouselView.swift index 7e11ff57..4d208c42 100644 --- a/damus/Views/Images/FullScreenCarouselView.swift +++ b/damus/Views/Images/FullScreenCarouselView.swift @@ -130,19 +130,42 @@ struct FullScreenCarouselView: View { } } -fileprivate struct ImageViewPreview: View { +fileprivate struct FullScreenCarouselPreviewView: View { @State var selectedIndex: Int = 0 let url: MediaUrl = .image(URL(string: "https://jb55.com/red-me.jpg")!) let test_video_url: MediaUrl = .video(URL(string: "http://cdn.jb55.com/s/zaps-build.mp4")!) + let custom_content: (() -> Content)? + + init(content: (() -> Content)? = nil) { + self.custom_content = content + } var body: some View { - FullScreenCarouselView(video_controller: test_damus_state.video, urls: [test_video_url, url], settings: test_damus_state.settings, selectedIndex: $selectedIndex) + FullScreenCarouselView(video_controller: test_damus_state.video, urls: [test_video_url, url], settings: test_damus_state.settings, selectedIndex: $selectedIndex) { + self.custom_content?() + } .environmentObject(OrientationTracker()) } } -struct ImageView_Previews: PreviewProvider { +struct FullScreenCarouselView_Previews: PreviewProvider { static var previews: some View { - ImageViewPreview() + Group { + FullScreenCarouselPreviewView() + .previewDisplayName("No custom content on overlay") + + FullScreenCarouselPreviewView(content: { + HStack { + Spacer() + + Text("Some content") + .padding() + .foregroundColor(.white) + + Spacer() + }.background(.ultraThinMaterial) + }) + .previewDisplayName("Custom content on overlay") + } } }