콘텐츠 메인 무료 탭
- 새로운 무료 콘텐츠 전체보기
This commit is contained in:
		| @@ -108,7 +108,7 @@ enum AppStep { | ||||
|      | ||||
|     case orderListAll | ||||
|      | ||||
|     case newContentAll | ||||
|     case newContentAll(isFree: Bool) | ||||
|      | ||||
|     case curationAll(title: String, curationId: Int) | ||||
|      | ||||
|   | ||||
| @@ -17,13 +17,15 @@ struct ContentNewAllView: View { | ||||
|         GridItem(.flexible(), alignment: .top) | ||||
|     ] | ||||
|      | ||||
|     let isFree: Bool | ||||
|      | ||||
|     var body: some View { | ||||
|         NavigationView { | ||||
|             BaseView(isLoading: $viewModel.isLoading) { | ||||
|                 VStack(alignment: .leading, spacing: 13.3) { | ||||
|                     DetailNavigationBar(title: "새로운 단편") | ||||
|                     DetailNavigationBar(title: isFree ? "새로운 무료 콘텐츠" : "새로운 단편") | ||||
|                      | ||||
|                     Text("※ 최근 2주간 등록된 새로운 단편 입니다.") | ||||
|                     Text("※ 최근 2주간 등록된 새로운 무료 콘텐츠 입니다.") | ||||
|                         .font(.custom(Font.medium.rawValue, size: 14.7)) | ||||
|                         .foregroundColor(.graybb) | ||||
|                         .padding(.horizontal, 13.3) | ||||
| @@ -72,16 +74,18 @@ struct ContentNewAllView: View { | ||||
|                     } | ||||
|                 } | ||||
|                 .onAppear { | ||||
|                     viewModel.isFree = isFree | ||||
|                     viewModel.getThemeList() | ||||
|                     viewModel.getNewContentList() | ||||
|                 } | ||||
|             } | ||||
|             .navigationBarHidden(true) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| struct ContentNewAllView_Previews: PreviewProvider { | ||||
|     static var previews: some View { | ||||
|         ContentNewAllView() | ||||
|         ContentNewAllView(isFree: false) | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -33,11 +33,14 @@ final class ContentNewAllViewModel: ObservableObject { | ||||
|     var isLast = false | ||||
|     private let pageSize = 10 | ||||
|      | ||||
|     var isFree: Bool = false | ||||
|      | ||||
|     func getNewContentList() { | ||||
|         if (!isLast && !isLoading) { | ||||
|             isLoading = true | ||||
|              | ||||
|             repository.getNewContentAllOfTheme( | ||||
|                 isFree: isFree, | ||||
|                 theme: selectedTheme == "전체" ? "" : selectedTheme, | ||||
|                 page: page, | ||||
|                 size: pageSize | ||||
|   | ||||
| @@ -30,7 +30,7 @@ enum ContentApi { | ||||
|     case donation(request: AudioContentDonationRequest) | ||||
|     case modifyComment(request: ModifyCommentRequest) | ||||
|     case getNewContentThemeList | ||||
|     case getNewContentAllOfTheme(theme: String, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) | ||||
|     case getNewContentAllOfTheme(isFree: Bool, theme: String, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int) | ||||
|     case getAudioContentListByCurationId(curationId: Int, isAdultContentVisible: Bool, contentType: ContentType, page: Int, size: Int, sort: ContentCurationViewModel.Sort) | ||||
|     case getContentRanking(page: Int, size: Int, sortType: String) | ||||
|     case getContentRankingSortType | ||||
| @@ -336,8 +336,9 @@ extension ContentApi: TargetType { | ||||
|         case .getNewContentThemeList: | ||||
|             return .requestPlain | ||||
|              | ||||
|         case .getNewContentAllOfTheme(let theme, let isAdultContentVisible, let contentType, let page, let size): | ||||
|         case .getNewContentAllOfTheme(let isFree, let theme, let isAdultContentVisible, let contentType, let page, let size): | ||||
|             let parameters = [ | ||||
|                 "isFree": isFree, | ||||
|                 "theme": theme, | ||||
|                 "isAdultContentVisible": isAdultContentVisible, | ||||
|                 "contentType": contentType, | ||||
|   | ||||
| @@ -112,9 +112,10 @@ final class ContentRepository { | ||||
|         return api.requestPublisher(.getNewContentThemeList) | ||||
|     } | ||||
|      | ||||
|     func getNewContentAllOfTheme(theme: String, page: Int, size: Int) -> AnyPublisher<Response, MoyaError> { | ||||
|     func getNewContentAllOfTheme(isFree: Bool, theme: String, page: Int, size: Int) -> AnyPublisher<Response, MoyaError> { | ||||
|         return api.requestPublisher( | ||||
|             .getNewContentAllOfTheme( | ||||
|                 isFree: isFree, | ||||
|                 theme: theme, | ||||
|                 isAdultContentVisible: UserDefaults.isAdultContentVisible(), | ||||
|                 contentType: ContentType(rawValue: UserDefaults.string(forKey: .contentPreference)) ?? ContentType.ALL, | ||||
|   | ||||
| @@ -24,7 +24,7 @@ struct ContentMainNewContentView: View { | ||||
|                     .resizable() | ||||
|                     .frame(width: 20, height: 20) | ||||
|                     .onTapGesture { | ||||
|                         AppState.shared.setAppStep(step: .newContentAll) | ||||
|                         AppState.shared.setAppStep(step: .newContentAll(isFree: false)) | ||||
|                     } | ||||
|             } | ||||
|              | ||||
|   | ||||
| @@ -25,7 +25,7 @@ struct ContentMainTabContentView: View { | ||||
|                             title: "새로운 단편", | ||||
|                             onClickMore: { | ||||
|                                 AppState.shared | ||||
|                                     .setAppStep(step: .newContentAll) | ||||
|                                     .setAppStep(step: .newContentAll(isFree: false)) | ||||
|                             }, | ||||
|                             themeList: viewModel.contentThemeList, | ||||
|                             contentList: viewModel.newContentList | ||||
|   | ||||
| @@ -44,7 +44,10 @@ struct ContentMainTabFreeView: View { | ||||
|                     if !viewModel.themeList.isEmpty { | ||||
|                         ContentMainNewContentViewV2( | ||||
|                             title: "새로운 무료 콘텐츠", | ||||
|                             onClickMore: {}, | ||||
|                             onClickMore: { | ||||
|                                 AppState.shared | ||||
|                                     .setAppStep(step: .newContentAll(isFree: true)) | ||||
|                             }, | ||||
|                             themeList: viewModel.themeList, | ||||
|                             contentList: viewModel.newFreeContentList | ||||
|                         ) { | ||||
|   | ||||
| @@ -161,8 +161,8 @@ struct ContentView: View { | ||||
|             case .userProfileFanTalkAll(let userId): | ||||
|                 UserProfileFanTalkAllView(userId: userId) | ||||
|                  | ||||
|             case .newContentAll: | ||||
|                 ContentNewAllView() | ||||
|             case .newContentAll(let isFree): | ||||
|                 ContentNewAllView(isFree: isFree) | ||||
|                  | ||||
|             case .curationAll(let title, let curationId): | ||||
|                 ContentCurationView(title: title, curationId: curationId) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung