diff --git a/Spon-us.xcodeproj/project.pbxproj b/Spon-us.xcodeproj/project.pbxproj index 463ffb8..9b60ec5 100644 --- a/Spon-us.xcodeproj/project.pbxproj +++ b/Spon-us.xcodeproj/project.pbxproj @@ -72,9 +72,6 @@ 8042C38F2B809BA5003DE096 /* AsyncImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8042C38E2B809BA5003DE096 /* AsyncImageView.swift */; }; 8042C3912B80B9A5003DE096 /* SearchAnnouncementModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8042C3902B80B9A5003DE096 /* SearchAnnouncementModel.swift */; }; 8042C3932B80BDFC003DE096 /* SearchAnnouncementViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8042C3922B80BDFC003DE096 /* SearchAnnouncementViewModel.swift */; }; - 8042C39D2B82075A003DE096 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8042C39C2B82075A003DE096 /* GoogleService-Info.plist */; }; - 8042C3A02B820A50003DE096 /* NotificationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8042C39F2B820A50003DE096 /* NotificationModel.swift */; }; - 8042C3A22B820A5B003DE096 /* NotificationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8042C3A12B820A5B003DE096 /* NotificationViewModel.swift */; }; 806AF86A2B79DBD0008F7F62 /* CategoryModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806AF8692B79DBD0008F7F62 /* CategoryModel.swift */; }; 806AF86C2B79EB3F008F7F62 /* CategoryModelData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806AF86B2B79EB3F008F7F62 /* CategoryModelData.swift */; }; 806AF8732B7B8504008F7F62 /* AnnouncementViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806AF8722B7B8504008F7F62 /* AnnouncementViewModel.swift */; }; @@ -208,9 +205,6 @@ 8042C38E2B809BA5003DE096 /* AsyncImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AsyncImageView.swift; sourceTree = ""; }; 8042C3902B80B9A5003DE096 /* SearchAnnouncementModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchAnnouncementModel.swift; sourceTree = ""; }; 8042C3922B80BDFC003DE096 /* SearchAnnouncementViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchAnnouncementViewModel.swift; sourceTree = ""; }; - 8042C39C2B82075A003DE096 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "../../GoogleService-Info.plist"; sourceTree = ""; }; - 8042C39F2B820A50003DE096 /* NotificationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationModel.swift; sourceTree = ""; }; - 8042C3A12B820A5B003DE096 /* NotificationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationViewModel.swift; sourceTree = ""; }; 806AF8692B79DBD0008F7F62 /* CategoryModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CategoryModel.swift; sourceTree = ""; }; 806AF86B2B79EB3F008F7F62 /* CategoryModelData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CategoryModelData.swift; sourceTree = ""; }; 806AF8722B7B8504008F7F62 /* AnnouncementViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementViewModel.swift; sourceTree = ""; }; @@ -323,7 +317,6 @@ 100A1E352B7348DB00AAC1E8 /* Model */ = { isa = PBXGroup; children = ( - 8042C39E2B820A18003DE096 /* Notification */, 8042C3882B80784E003DE096 /* Search */, 100A1E362B734DA500AAC1E8 /* Onboarding */, DF498F282B7CDD8200ADE078 /* Portfolio */, @@ -371,7 +364,7 @@ 100D387F2B44826500498977 /* Spon-us */ = { isa = PBXGroup; children = ( - 8042C39C2B82075A003DE096 /* GoogleService-Info.plist */, + 10584CBF2B81EE84007F7A3F /* GoogleService-Info.plist */, 80B41FFF2B77F0DF0021DD90 /* Spon-us.entitlements */, 100D389F2B44833F00498977 /* Info.plist */, 3B36F09F2B6FEBCB0000ACFB /* PortOne */, @@ -582,15 +575,6 @@ path = Search; sourceTree = ""; }; - 8042C39E2B820A18003DE096 /* Notification */ = { - isa = PBXGroup; - children = ( - 8042C39F2B820A50003DE096 /* NotificationModel.swift */, - 8042C3A12B820A5B003DE096 /* NotificationViewModel.swift */, - ); - path = Notification; - sourceTree = ""; - }; 806AF8682B79D985008F7F62 /* Category */ = { isa = PBXGroup; children = ( @@ -758,7 +742,6 @@ 100D389C2B44833500498977 /* SUIT-Medium.otf in Resources */, 3B81BCBE2B62312C0067E9CB /* Product.storekit in Resources */, 100D38A32B44834700498977 /* Preview Assets.xcassets in Resources */, - 8042C39D2B82075A003DE096 /* GoogleService-Info.plist in Resources */, 100D389E2B44833500498977 /* Pretendard-SemiBold.otf in Resources */, 100D38AD2B44844F00498977 /* Assets.xcassets in Resources */, 10584CC02B81EE84007F7A3F /* GoogleService-Info.plist in Resources */, @@ -775,7 +758,6 @@ buildActionMask = 2147483647; files = ( 107D6E6B2B7A83AB005B6261 /* MyOrganizationViewModel.swift in Sources */, - 8042C3A22B820A5B003DE096 /* NotificationViewModel.swift in Sources */, 100D38BA2B4EF54C00498977 /* MyView.swift in Sources */, 3B81BCB42B622ED00067E9CB /* StoreKitTestView.swift in Sources */, DF90A5B22B664EBF00BC54D0 /* TermsAndConditionsView.swift in Sources */, @@ -790,7 +772,6 @@ 100D389A2B44833500498977 /* FontManager.swift in Sources */, 10025B392B7B804400DCCC5A /* SentViewModel.swift in Sources */, 100D38B62B4EF51E00498977 /* SavedView.swift in Sources */, - 8042C3A02B820A50003DE096 /* NotificationModel.swift in Sources */, 80FA31692B5EB9490076453B /* NewPostView.swift in Sources */, 100D38B82B4EF54100498977 /* CategoryView.swift in Sources */, 3BD26D062B62342C0035FE80 /* ChargerInfoView.swift in Sources */, diff --git a/Spon-us/Model/Notification/NotificationModel.swift b/Spon-us/Model/Notification/NotificationModel.swift deleted file mode 100644 index 48b2ba0..0000000 --- a/Spon-us/Model/Notification/NotificationModel.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// NotificationModel.swift -// Spon-us -// -// Created by 김수민 on 2/18/24. -// - -import Foundation - -struct NotificationModel: Codable { - let statusCode: String - let message: String - let content: [NotificationContent] -} - -struct NotificationContent: Codable, Identifiable { - let id: Int - let title: String - let body: String - let organizationId: Int? - let announcementId: Int? - let proposeId: Int? - let isRead: Bool -} diff --git a/Spon-us/Model/Notification/NotificationViewModel.swift b/Spon-us/Model/Notification/NotificationViewModel.swift deleted file mode 100644 index b492c5d..0000000 --- a/Spon-us/Model/Notification/NotificationViewModel.swift +++ /dev/null @@ -1,34 +0,0 @@ -// -// NotificationViewModel.swift -// Spon-us -// -// Created by 김수민 on 2/18/24. -// - -import Foundation -import Moya - -class NotificationViewModel: ObservableObject { - @Published var notificationContents: [NotificationContent] = [] - @Published var isLoading = false - let provider = MoyaProvider() - - func getNotifications(){ - self.isLoading = true - provider.request(.getNotification){result in - switch result { - case .success(let response): - do { - // 성공적으로 데이터를 받아온 경우, JSON 디코딩을 시도합니다. - let searchResults = try JSONDecoder().decode(NotificationModel.self, from: response.data) - self.notificationContents = searchResults.content - } catch let error { - // 디코딩 과정에서 오류가 발생한 경우, 오류를 처리합니다. - print("Error decoding data: \(error)") - } - case .failure(let error): - print("Error decoding data: \(error)") - } - } - } -} diff --git a/Spon-us/SponusAPI.swift b/Spon-us/SponusAPI.swift index e40fe22..7fa156e 100644 --- a/Spon-us/SponusAPI.swift +++ b/Spon-us/SponusAPI.swift @@ -35,8 +35,6 @@ enum SponusAPI { case searchAnnouncement(keyword: String) case getMyOffer case patchPullUp(announcementID: Int) - //MARK: 알림 - case getNotification } extension SponusAPI: TargetType { @@ -93,8 +91,6 @@ extension SponusAPI: TargetType { return "/api/v1/proposes/received" case .patchPullUp(let announcementID): return "/api/v1/announcements/\(announcementID)/pullUp" - case .getNotification: - return "/api/v1/organizations/notifications" } } @@ -147,8 +143,6 @@ extension SponusAPI: TargetType { return .get case .patchPullUp: return .patch - case .getNotification: - return .get } } @@ -231,8 +225,6 @@ extension SponusAPI: TargetType { return Data() case .patchPullUp: return Data() - case .getNotification: - return Data() } } @@ -354,8 +346,6 @@ extension SponusAPI: TargetType { return .requestPlain case .patchPullUp: return .requestPlain - case .getNotification: - return .requestPlain } } @@ -412,8 +402,6 @@ extension SponusAPI: TargetType { return ["Authorization": "Bearer \(loadAccessToken(userID: UserDefaults.standard.string(forKey: "loginAccount") ?? "loadAccessToken Error"))"] case .patchPullUp: return ["Authorization": "Bearer \(loadAccessToken(userID: UserDefaults.standard.string(forKey: "loginAccount") ?? "loadAccessToken Error"))"] - case .getNotification: - return ["Authorization": "Bearer \(loadAccessToken(userID: UserDefaults.standard.string(forKey: "loginAccount") ?? "loadAccessToken Error"))"] } } } diff --git a/Spon-us/View/Notification/NotificationView.swift b/Spon-us/View/Notification/NotificationView.swift index fd8f2bf..47163a9 100644 --- a/Spon-us/View/Notification/NotificationView.swift +++ b/Spon-us/View/Notification/NotificationView.swift @@ -8,21 +8,12 @@ import SwiftUI struct NotificationView: View { - @ObservedObject var viewModel = NotificationViewModel() var body: some View { - ScrollView(){ - VStack(spacing: 16){ - // NotificationCell(isRead: false) - // NotificationCell(isRead: true) - // NotificationCell(isRead: true) - ForEach(viewModel.notificationContents) { notificationContent in - NotificationCell(notificationContent: notificationContent).frame(height: 95) - } - Spacer() - } - } - .onAppear(){ - viewModel.getNotifications() + VStack(spacing: 16){ + NotificationCell(isRead: false) + NotificationCell(isRead: true) + NotificationCell(isRead: true) + Spacer() } .padding(.horizontal, 20).padding(.vertical, 16) .navigationTitle("알림").font(.Body01) @@ -33,7 +24,7 @@ struct NotificationView: View { } struct NotificationCell: View { - var notificationContent: NotificationContent + let isRead: Bool var body: some View { VStack(spacing: 20){ NavigationLink(destination: Text("df"), label : { @@ -41,10 +32,16 @@ struct NotificationCell: View { Image("company_dummy").frame(width: 46, height: 46) .padding(.trailing, 12) VStack(alignment: .leading, spacing: 4){ - Text("\(notificationContent.title)").font(.Body06).foregroundColor(notificationContent.isRead == true ? .sponusGrey700 : .sponusPrimary) - Text("\(notificationContent.body)").multilineTextAlignment(.leading).font(.Body06).foregroundColor(notificationContent.isRead == true ? .sponusGrey700 : .sponusBlack) + Text("제안서 도착").font(.Body06).foregroundColor(isRead == true ? .sponusGrey700 : .sponusPrimary) + Text("무신사 담당자님이\n제안서를 보냈습니다.").multilineTextAlignment(.leading).font(.Body06).foregroundColor(isRead == true ? .sponusGrey700 : .sponusBlack) + HStack(spacing: 0){ + Image("ic_alert").frame(width: 8, height: 8) + .padding(.trailing, 6) + Text("27분 전").font(.English16).foregroundColor(.sponusGrey700) + Spacer() + } Spacer() - } + }.frame(width: 237, height: 95) Spacer() Image("ic_move").rotationEffect(Angle(degrees: 180)) }