콘텐츠 상세
- 한정판 UI 추가
This commit is contained in:
		| @@ -36,13 +36,22 @@ | ||||
|         "version" : "5.7.1" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "identity" : "app-check", | ||||
|       "kind" : "remoteSourceControl", | ||||
|       "location" : "https://github.com/google/app-check.git", | ||||
|       "state" : { | ||||
|         "revision" : "3e464dad87dad2d29bb29a97836789bf0f8f67d2", | ||||
|         "version" : "10.18.1" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "identity" : "firebase-ios-sdk", | ||||
|       "kind" : "remoteSourceControl", | ||||
|       "location" : "https://github.com/firebase/firebase-ios-sdk.git", | ||||
|       "state" : { | ||||
|         "revision" : "df2171b0c6afb9e9d4f7e07669d558c510b9f6be", | ||||
|         "version" : "10.13.0" | ||||
|         "revision" : "be49849dcba96f2b5ee550d4eceb2c0fa27dade4", | ||||
|         "version" : "10.22.1" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
| @@ -50,8 +59,8 @@ | ||||
|       "kind" : "remoteSourceControl", | ||||
|       "location" : "https://github.com/google/GoogleAppMeasurement.git", | ||||
|       "state" : { | ||||
|         "revision" : "03b9beee1a61f62d32c521e172e192a1663a5e8b", | ||||
|         "version" : "10.13.0" | ||||
|         "revision" : "482cfa4e5880f0a29f66ecfd60c5a62af28bd1f0", | ||||
|         "version" : "10.22.1" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
| @@ -59,8 +68,8 @@ | ||||
|       "kind" : "remoteSourceControl", | ||||
|       "location" : "https://github.com/google/GoogleDataTransport.git", | ||||
|       "state" : { | ||||
|         "revision" : "aae45a320fd0d11811820335b1eabc8753902a40", | ||||
|         "version" : "9.2.5" | ||||
|         "revision" : "a637d318ae7ae246b02d7305121275bc75ed5565", | ||||
|         "version" : "9.4.0" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
| @@ -68,8 +77,8 @@ | ||||
|       "kind" : "remoteSourceControl", | ||||
|       "location" : "https://github.com/google/GoogleUtilities.git", | ||||
|       "state" : { | ||||
|         "revision" : "c38ce365d77b04a9a300c31061c5227589e5597b", | ||||
|         "version" : "7.11.5" | ||||
|         "revision" : "26c898aed8bed13b8a63057ee26500abbbcb8d55", | ||||
|         "version" : "7.13.1" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
| @@ -77,8 +86,8 @@ | ||||
|       "kind" : "remoteSourceControl", | ||||
|       "location" : "https://github.com/google/grpc-binary.git", | ||||
|       "state" : { | ||||
|         "revision" : "f1b366129d1125be7db83247e003fc333104b569", | ||||
|         "version" : "1.50.2" | ||||
|         "revision" : "a673bc2937fbe886dd1f99c401b01b6d977a9c98", | ||||
|         "version" : "1.49.1" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
| @@ -90,6 +99,15 @@ | ||||
|         "version" : "3.1.1" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "identity" : "interop-ios-for-google-sdks", | ||||
|       "kind" : "remoteSourceControl", | ||||
|       "location" : "https://github.com/google/interop-ios-for-google-sdks.git", | ||||
|       "state" : { | ||||
|         "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", | ||||
|         "version" : "100.0.0" | ||||
|       } | ||||
|     }, | ||||
|     { | ||||
|       "identity" : "kingfisher", | ||||
|       "kind" : "remoteSourceControl", | ||||
|   | ||||
| @@ -0,0 +1,65 @@ | ||||
| // | ||||
| //  ContentDetailInfoLimitedEditionView.swift | ||||
| //  SodaLive | ||||
| // | ||||
| //  Created by klaus on 3/27/24. | ||||
| // | ||||
|  | ||||
| import SwiftUI | ||||
|  | ||||
| struct ContentDetailInfoLimitedEditionView: View { | ||||
|      | ||||
|     let totalContentCount: Int | ||||
|     let remainingContentCount: Int | ||||
|     let orderSequence: Int? | ||||
|      | ||||
|     var body: some View { | ||||
|         HStack(spacing: 0) { | ||||
|             Text("한정판") | ||||
|                 .font(.custom(Font.medium.rawValue, size: 13.3)) | ||||
|                 .foregroundColor(Color.button) | ||||
|              | ||||
|             Spacer() | ||||
|              | ||||
|             if let orderSequence = orderSequence { | ||||
|                 Text("\(orderSequence)") | ||||
|                     .font(.custom(Font.bold.rawValue, size: 13.3)) | ||||
|                     .foregroundColor(Color.button) | ||||
|                     .padding(.leading, 5.3) | ||||
|                  | ||||
|                 Text("/") | ||||
|                     .font(.custom(Font.bold.rawValue, size: 13.3)) | ||||
|                     .foregroundColor(Color.grayd2) | ||||
|                     .padding(.leading, 2.3) | ||||
|                  | ||||
|                 Text("\(totalContentCount)") | ||||
|                     .font(.custom(Font.medium.rawValue, size: 13.3)) | ||||
|                     .foregroundColor(Color.grayd2) | ||||
|                     .padding(.leading, 2.3) | ||||
|             } else { | ||||
|                 Text("잔여수량") | ||||
|                     .font(.custom(Font.medium.rawValue, size: 13.3)) | ||||
|                     .foregroundColor(Color.grayd2) | ||||
|                  | ||||
|                 Text("\(remainingContentCount)") | ||||
|                     .font(.custom(Font.bold.rawValue, size: 13.3)) | ||||
|                     .foregroundColor(Color.button) | ||||
|                     .padding(.leading, 5.3) | ||||
|             } | ||||
|              | ||||
|         } | ||||
|         .padding(.vertical, 8) | ||||
|         .padding(.horizontal, 10.3) | ||||
|         .background(Color(hex: "14262d")) | ||||
|         .cornerRadius(5.3) | ||||
|         .padding(.top, 13.3) | ||||
|     } | ||||
| } | ||||
|  | ||||
| #Preview { | ||||
|     ContentDetailInfoLimitedEditionView( | ||||
|         totalContentCount: 10, | ||||
|         remainingContentCount: 3, | ||||
|         orderSequence: 5 | ||||
|     ) | ||||
| } | ||||
| @@ -142,6 +142,14 @@ struct ContentDetailInfoView: View { | ||||
|             } | ||||
|             .padding(.top, 13.3) | ||||
|              | ||||
|             if let totalContentCount = audioContent.totalContentCount, let remainingContentCount = audioContent.remainingContentCount { | ||||
|                 ContentDetailInfoLimitedEditionView( | ||||
|                     totalContentCount: totalContentCount, | ||||
|                     remainingContentCount: remainingContentCount, | ||||
|                     orderSequence: audioContent.orderSequence | ||||
|                 ) | ||||
|             } | ||||
|              | ||||
|             ZStack { | ||||
|                 VStack(spacing: 8) { | ||||
|                     if audioContent.tag.count > 0 { | ||||
|   | ||||
| @@ -18,6 +18,9 @@ struct GetAudioContentDetailResponse: Decodable { | ||||
|     let price: Int | ||||
|     let duration: String | ||||
|     let releaseDate: String? | ||||
|     let totalContentCount: Int? | ||||
|     let remainingContentCount: Int? | ||||
|     let orderSequence: Int? | ||||
|     let isActivePreview: Bool | ||||
|     let isAdult: Bool | ||||
|     let isMosaic: Bool | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung