From 92608b544935f347698426bb989c3a581be57fb0 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Wed, 8 Jan 2025 00:25:52 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=EB=94=94=EC=85=98,=20=EC=98=A4?= =?UTF-8?q?=EB=94=94=EC=85=98=20=EC=BA=90=EB=A6=AD=ED=84=B0=20-=20?= =?UTF-8?q?=EB=AA=A8=EC=A7=91=EC=99=84=EB=A3=8C=EC=9D=B4=EB=A9=B4=20?= =?UTF-8?q?=ED=84=B0=EC=B9=98=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Applicant/AuditionApplicantSortType.swift | 2 +- SodaLive/Sources/Audition/AuditionView.swift | 30 +++++++++------ .../Audition/Detail/AuditionDetailView.swift | 8 ++-- .../Role/AuditionRoleDetailView.swift | 37 +++++++++++++++++++ .../Role/AuditionRoleDetailViewModel.swift | 27 +++++++++----- 5 files changed, 78 insertions(+), 26 deletions(-) diff --git a/SodaLive/Sources/Audition/Applicant/AuditionApplicantSortType.swift b/SodaLive/Sources/Audition/Applicant/AuditionApplicantSortType.swift index e90c78e..8ee5b65 100644 --- a/SodaLive/Sources/Audition/Applicant/AuditionApplicantSortType.swift +++ b/SodaLive/Sources/Audition/Applicant/AuditionApplicantSortType.swift @@ -6,5 +6,5 @@ // enum AuditionApplicantSortType: String, Codable { - case NEWEST, LIKE + case NEWEST, LIKES } diff --git a/SodaLive/Sources/Audition/AuditionView.swift b/SodaLive/Sources/Audition/AuditionView.swift index c1a141a..05c5de9 100644 --- a/SodaLive/Sources/Audition/AuditionView.swift +++ b/SodaLive/Sources/Audition/AuditionView.swift @@ -41,10 +41,12 @@ struct AuditionView: View { AuditionItemView(item: item) .onTapGesture { - AppState.shared - .setAppStep( - step: .auditionDetail(auditionId: item.id) - ) + if !item.isOff { + AppState.shared + .setAppStep( + step: .auditionDetail(auditionId: item.id) + ) + } } } } else if $0 == viewModel.firstIsOffIndex { @@ -74,19 +76,23 @@ struct AuditionView: View { AuditionItemView(item: item) .padding(.top, 16.7) .onTapGesture { - AppState.shared - .setAppStep( - step: .auditionDetail(auditionId: item.id) - ) + if !item.isOff { + AppState.shared + .setAppStep( + step: .auditionDetail(auditionId: item.id) + ) + } } } } else { AuditionItemView(item: item) .onTapGesture { - AppState.shared - .setAppStep( - step: .auditionDetail(auditionId: item.id) - ) + if !item.isOff { + AppState.shared + .setAppStep( + step: .auditionDetail(auditionId: item.id) + ) + } } } diff --git a/SodaLive/Sources/Audition/Detail/AuditionDetailView.swift b/SodaLive/Sources/Audition/Detail/AuditionDetailView.swift index 8908fac..a894916 100644 --- a/SodaLive/Sources/Audition/Detail/AuditionDetailView.swift +++ b/SodaLive/Sources/Audition/Detail/AuditionDetailView.swift @@ -47,10 +47,12 @@ struct AuditionDetailView: View { ForEach(0.. Void = {} + func setSortType(sortType: AuditionApplicantSortType) { + if self.sortType != sortType { + self.sortType = sortType + } + } + func getAuditionRoleDetail() { isLoading = true @@ -237,13 +241,8 @@ final class AuditionRoleDetailViewModel: ObservableObject { self.phoneNumber = "" self.fileName = "" self.soundData = nil - self.applicantList = [] - self.totalCount = 0 - - self.page = 1 - self.isLast = false - self.getAuditionRoleDetail() + self.refreshApplicantList() onSuccess() } else { if let message = decoded.message { @@ -323,6 +322,14 @@ final class AuditionRoleDetailViewModel: ObservableObject { .store(in: &subscription) } + private func refreshApplicantList() { + self.page = 1 + self.isLast = false + self.totalCount = 0 + self.applicantList = [] + self.getAuditionApplicantList() + } + func deleteAllRecordingFilesWithNamePrefix(_ prefix: String) { let fileManager = FileManager.default let documentsURL = getDocumentsDirectory()