콘텐츠 상세
- 한정판 UI 추가
This commit is contained in:
		| @@ -36,13 +36,22 @@ | |||||||
|         "version" : "5.7.1" |         "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", |       "identity" : "firebase-ios-sdk", | ||||||
|       "kind" : "remoteSourceControl", |       "kind" : "remoteSourceControl", | ||||||
|       "location" : "https://github.com/firebase/firebase-ios-sdk.git", |       "location" : "https://github.com/firebase/firebase-ios-sdk.git", | ||||||
|       "state" : { |       "state" : { | ||||||
|         "revision" : "df2171b0c6afb9e9d4f7e07669d558c510b9f6be", |         "revision" : "be49849dcba96f2b5ee550d4eceb2c0fa27dade4", | ||||||
|         "version" : "10.13.0" |         "version" : "10.22.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
| @@ -50,8 +59,8 @@ | |||||||
|       "kind" : "remoteSourceControl", |       "kind" : "remoteSourceControl", | ||||||
|       "location" : "https://github.com/google/GoogleAppMeasurement.git", |       "location" : "https://github.com/google/GoogleAppMeasurement.git", | ||||||
|       "state" : { |       "state" : { | ||||||
|         "revision" : "03b9beee1a61f62d32c521e172e192a1663a5e8b", |         "revision" : "482cfa4e5880f0a29f66ecfd60c5a62af28bd1f0", | ||||||
|         "version" : "10.13.0" |         "version" : "10.22.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
| @@ -59,8 +68,8 @@ | |||||||
|       "kind" : "remoteSourceControl", |       "kind" : "remoteSourceControl", | ||||||
|       "location" : "https://github.com/google/GoogleDataTransport.git", |       "location" : "https://github.com/google/GoogleDataTransport.git", | ||||||
|       "state" : { |       "state" : { | ||||||
|         "revision" : "aae45a320fd0d11811820335b1eabc8753902a40", |         "revision" : "a637d318ae7ae246b02d7305121275bc75ed5565", | ||||||
|         "version" : "9.2.5" |         "version" : "9.4.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
| @@ -68,8 +77,8 @@ | |||||||
|       "kind" : "remoteSourceControl", |       "kind" : "remoteSourceControl", | ||||||
|       "location" : "https://github.com/google/GoogleUtilities.git", |       "location" : "https://github.com/google/GoogleUtilities.git", | ||||||
|       "state" : { |       "state" : { | ||||||
|         "revision" : "c38ce365d77b04a9a300c31061c5227589e5597b", |         "revision" : "26c898aed8bed13b8a63057ee26500abbbcb8d55", | ||||||
|         "version" : "7.11.5" |         "version" : "7.13.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
| @@ -77,8 +86,8 @@ | |||||||
|       "kind" : "remoteSourceControl", |       "kind" : "remoteSourceControl", | ||||||
|       "location" : "https://github.com/google/grpc-binary.git", |       "location" : "https://github.com/google/grpc-binary.git", | ||||||
|       "state" : { |       "state" : { | ||||||
|         "revision" : "f1b366129d1125be7db83247e003fc333104b569", |         "revision" : "a673bc2937fbe886dd1f99c401b01b6d977a9c98", | ||||||
|         "version" : "1.50.2" |         "version" : "1.49.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
| @@ -90,6 +99,15 @@ | |||||||
|         "version" : "3.1.1" |         "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", |       "identity" : "kingfisher", | ||||||
|       "kind" : "remoteSourceControl", |       "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) |             .padding(.top, 13.3) | ||||||
|              |              | ||||||
|  |             if let totalContentCount = audioContent.totalContentCount, let remainingContentCount = audioContent.remainingContentCount { | ||||||
|  |                 ContentDetailInfoLimitedEditionView( | ||||||
|  |                     totalContentCount: totalContentCount, | ||||||
|  |                     remainingContentCount: remainingContentCount, | ||||||
|  |                     orderSequence: audioContent.orderSequence | ||||||
|  |                 ) | ||||||
|  |             } | ||||||
|  |              | ||||||
|             ZStack { |             ZStack { | ||||||
|                 VStack(spacing: 8) { |                 VStack(spacing: 8) { | ||||||
|                     if audioContent.tag.count > 0 { |                     if audioContent.tag.count > 0 { | ||||||
|   | |||||||
| @@ -18,6 +18,9 @@ struct GetAudioContentDetailResponse: Decodable { | |||||||
|     let price: Int |     let price: Int | ||||||
|     let duration: String |     let duration: String | ||||||
|     let releaseDate: String? |     let releaseDate: String? | ||||||
|  |     let totalContentCount: Int? | ||||||
|  |     let remainingContentCount: Int? | ||||||
|  |     let orderSequence: Int? | ||||||
|     let isActivePreview: Bool |     let isActivePreview: Bool | ||||||
|     let isAdult: Bool |     let isAdult: Bool | ||||||
|     let isMosaic: Bool |     let isMosaic: Bool | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung