From 62e8695bad2a9107d7e453f4af7998853bae7f7f Mon Sep 17 00:00:00 2001 From: rudals9686 Date: Tue, 12 Dec 2023 14:06:35 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=20tag=EB=B6=88=EB=9F=AC=EC=98=A4?= =?UTF-8?q?=EA=B8=B0=20&&=20addmemo=20db=EC=97=B0=EA=B2=B0=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Cuckoo/Cuckoo.xcodeproj/project.pbxproj | 4 ++ .../UserInterfaceState.xcuserstate | Bin 69320 -> 105330 bytes .../Cuckoo/Cuckoo/Network/API/TagAPI.swift | 1 + .../Cuckoo/Network/NetworkManager.swift | 1 + .../Cuckoo/ViewModels/AddMemoViewModel.swift | 42 ++++++++++++++++++ .../ViewModels/MemoDetailViewModel.swift | 27 ++++++++--- .../Cuckoo/ViewModels/MemoViewModel.swift | 24 +++++----- .../Cuckoo/ViewModels/TagViewModel.swift | 35 +++++++++++++++ .../Cuckoo/Cuckoo/Views/AddMemoView.swift | 35 +++++++++------ 9 files changed, 138 insertions(+), 31 deletions(-) create mode 100644 Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/TagViewModel.swift diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.pbxproj b/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.pbxproj index 7391208..9702806 100644 --- a/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.pbxproj +++ b/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.pbxproj @@ -40,6 +40,7 @@ 7A7F87942AEF559E00F14B11 /* CuckooTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A7F87932AEF559E00F14B11 /* CuckooTests.swift */; }; 7A7F879E2AEF559E00F14B11 /* CuckooUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A7F879D2AEF559E00F14B11 /* CuckooUITests.swift */; }; 7A7F87A02AEF559E00F14B11 /* CuckooUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A7F879F2AEF559E00F14B11 /* CuckooUITestsLaunchTests.swift */; }; + 7D8857832B27E78800BD8D82 /* TagViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8857822B27E78800BD8D82 /* TagViewModel.swift */; }; 7D8DE4BD2B1EAF95004502FF /* MemoTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8DE4BC2B1EAF95004502FF /* MemoTag.swift */; }; 7D8DE4BF2B1EB078004502FF /* AlarmPreset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8DE4BE2B1EB078004502FF /* AlarmPreset.swift */; }; 7D8DE4C12B1EB0A6004502FF /* NotificationLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8DE4C02B1EB0A6004502FF /* NotificationLog.swift */; }; @@ -114,6 +115,7 @@ 7A7F87992AEF559E00F14B11 /* CuckooUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CuckooUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 7A7F879D2AEF559E00F14B11 /* CuckooUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CuckooUITests.swift; sourceTree = ""; }; 7A7F879F2AEF559E00F14B11 /* CuckooUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CuckooUITestsLaunchTests.swift; sourceTree = ""; }; + 7D8857822B27E78800BD8D82 /* TagViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TagViewModel.swift; sourceTree = ""; }; 7D8DE4BC2B1EAF95004502FF /* MemoTag.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemoTag.swift; sourceTree = ""; }; 7D8DE4BE2B1EB078004502FF /* AlarmPreset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlarmPreset.swift; sourceTree = ""; }; 7D8DE4C02B1EB0A6004502FF /* NotificationLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationLog.swift; sourceTree = ""; }; @@ -224,6 +226,7 @@ 7DF6B4D32B1B26E800B64CC0 /* MainContainerViewModel.swift */, 7D9AB3CD2B2295AE00B00C09 /* SettingTagViewModel.swift */, 00133EB12B24128E0035AB70 /* UserProfileViewModel.swift */, + 7D8857822B27E78800BD8D82 /* TagViewModel.swift */, ); path = ViewModels; sourceTree = ""; @@ -619,6 +622,7 @@ 7A0601A62B26AD6700055EBB /* LocalNotification.swift in Sources */, 7DF6B4D42B1B26E800B64CC0 /* MainContainerViewModel.swift in Sources */, 00DBF6FC2B1F1FF1001EBCE3 /* SettingAlarmPresetView.swift in Sources */, + 7D8857832B27E78800BD8D82 /* TagViewModel.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcworkspace/xcuserdata/kimkyeongmin.xcuserdatad/UserInterfaceState.xcuserstate b/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcworkspace/xcuserdata/kimkyeongmin.xcuserdatad/UserInterfaceState.xcuserstate index 323bc661e52f5407d71c05c33534c558fffedfb8..0e1f89cfc7300c7c5a95bf07bc4807a8ac55f478 100644 GIT binary patch literal 105330 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�Uam5 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 We)#o;H81b4qp(plugins:[loggerPlugin]) + let preset_provider = MoyaProvider(plugins:[loggerPlugin]) // 공통 네트워크 요청 로직 } diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/AddMemoViewModel.swift b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/AddMemoViewModel.swift index a45541f..50fbc56 100644 --- a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/AddMemoViewModel.swift +++ b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/AddMemoViewModel.swift @@ -6,3 +6,45 @@ // import Foundation + + +class AddMemoViewModel: ObservableObject { + @Published var memoType: String = "" + @Published var link: String = "" + @Published var memoContent: String = "" + @Published var selectedReminder: String = "" + private let memoViewModel = MemoViewModel.shared + + func addNewMemo() { + let url = URL(string: link) + let thumbURL = URL(string: "") // 썸네일 URL은 여기서는 빈 문자열로 처리했습니다. + print("작성완료") + // 메모 타입, 내용, URL 등을 사용하여 새 메모 추가 + MemoViewModel.shared.addMemo( + uuid: "86be72a7-9cae-42e1-ab57-b6d7a0df07b3", // 실제 사용자 UUID로 대체 + title: memoType, // 메모 타입 + comment: memoContent, // 메모 내용 + url: url, // 메모 URL + thumbURL: thumbURL, // 썸네일 URL + notificationCycle: 0, // 알림 주기, 예시로 0 사용 + notificationPreset: 0, // 알림 프리셋, 예시로 0 사용 + isPinned: false // 고정 여부, 예시로 false 사용 + ) + } + + + private func convertReminderToCycle(reminder: String) -> Int { + // 알림 주기 문자열을 숫자로 변환하는 로직 + switch reminder { + case "7일": + return 7 + case "14일": + return 14 + // 다른 주기에 대한 처리... + default: + return 0 // '없음' 또는 처리되지 않은 경우 + } + } +} + + diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MemoDetailViewModel.swift b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MemoDetailViewModel.swift index 85d624b..cd36462 100644 --- a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MemoDetailViewModel.swift +++ b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MemoDetailViewModel.swift @@ -6,6 +6,7 @@ // import Foundation +import Combine class MemoDetailViewModel: ObservableObject { @Published var memo: Memo @@ -17,14 +18,21 @@ class MemoDetailViewModel: ObservableObject { @Published var showDeleteAlert = false @Published var selectedReminder: String // 선택된 알람 주기를 저장 private let memoViewModel = MemoViewModel.shared + private let tagViewModel = TagViewModel.shared + private var cancellables = Set() + let reminderOptions = ["없음", "7일", "14일", "21일", "30일"] - init(memo: Memo, allTags: [Tag] = dummyTags, memoTags: [MemoTag] = dummyMemoTags) { - self.memo = memo - self.allTags = allTags - self.memoTags = memoTags + init(memo: Memo) { + self.memo = memo self.selectedReminder = "" - loadTags() + self.allTags = [] + self.tags = [] + self.memoTags = [] + self.isEditing = false + self.showActionButtons = false + self.showDeleteAlert = false + loadTagsForMemo(memoId: memo.id) } func toggleEditing() { @@ -71,6 +79,15 @@ class MemoDetailViewModel: ObservableObject { let relatedTagIds = relatedMemoTags.map { $0.tagId } tags = allTags.filter { relatedTagIds.contains($0.id) } } + private func loadTagsForMemo(memoId: Int) { + // 메모와 연관된 태그 로드 + tagViewModel.loadTagsForMemo(memoId: memoId) + // 결과를 관찰하여 tags 배열 업데이트 + tagViewModel.$tags.receive(on: RunLoop.main).sink { [weak self] loadedTags in + self?.tags = loadedTags + }.store(in: &cancellables) + } + } diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MemoViewModel.swift b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MemoViewModel.swift index 2b0c929..bdbea39 100644 --- a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MemoViewModel.swift +++ b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MemoViewModel.swift @@ -98,8 +98,9 @@ class MemoViewModel: ObservableObject { print("Error updating memo: \(error)") } } - - + } + + // func addMemo( // uuid: String!, @@ -176,17 +177,16 @@ class MemoViewModel: ObservableObject { // } - } - func deleteMemo(uuid: String, memoId: Int) { - NetworkManager.shared.memo_provider.request(.deleteMemo(type: "uuid", identifier: uuid, memo_id: memoId)) { result in - switch result { - case .success: - DispatchQueue.main.async { - self.memos.removeAll(where: { $0.id == memoId }) + func deleteMemo(uuid: String, memoId: Int) { + NetworkManager.shared.memo_provider.request(.deleteMemo(type: "uuid", identifier: uuid, memo_id: memoId)) { result in + switch result { + case .success: + DispatchQueue.main.async { + self.memos.removeAll(where: { $0.id == memoId }) + } + case .failure(let error): + print("Error deleting memo: \(error)") } - case .failure(let error): - print("Error deleting memo: \(error)") } } } -} diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/TagViewModel.swift b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/TagViewModel.swift new file mode 100644 index 0000000..c8943c8 --- /dev/null +++ b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/TagViewModel.swift @@ -0,0 +1,35 @@ +// +// TagViewModel.swift +// Cuckoo +// +// Created by 김경민 on 2023/12/12. +// + +import Foundation +import Moya + +class TagViewModel: ObservableObject { + static let shared = TagViewModel() + @Published var tags: [Tag] = [] + private let provider = MoyaProvider() + + func loadTagsForMemo(memoId: Int) { + provider.request(.loadTag(type: "memo", identifier: String(memoId))) { result in + switch result { + case .success(let response): + do { + // 서버로부터 받은 응답을 파싱하여 태그 배열에 저장 + let tagResponse = try JSONDecoder().decode(LoadTagResponse.self, from: response.data) + DispatchQueue.main.async { + self.tags = tagResponse.map { Tag(id: $0.id, name: $0.name, color: $0.color, memoCount: $0.memoCount) } + } + } catch { + print("Error decoding tags: \(error)") + } + case .failure(let error): + print("Error loading tags: \(error)") + } + } + } +} + diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo/Views/AddMemoView.swift b/Cuckoo_swiftUI/Cuckoo/Cuckoo/Views/AddMemoView.swift index 6694d27..74ad71b 100644 --- a/Cuckoo_swiftUI/Cuckoo/Cuckoo/Views/AddMemoView.swift +++ b/Cuckoo_swiftUI/Cuckoo/Cuckoo/Views/AddMemoView.swift @@ -10,7 +10,7 @@ import Combine struct AddMemoView: View { - + @StateObject private var viewModel = AddMemoViewModel() @SwiftUI.Environment(\.dismiss) var dismiss var body: some View { @@ -20,16 +20,16 @@ struct AddMemoView: View { .frame(maxWidth: .infinity) VStack(alignment: .leading, spacing: 30) { - MemoTypeFormView() + MemoTypeFormView(memoType: $viewModel.memoType) .frame(maxWidth: .infinity) - MemoUrlTypeFormView() + MemoUrlTypeFormView(link: $viewModel.link) .frame(maxWidth: .infinity) - MemoContentFormView() + MemoContentFormView(memoContent: $viewModel.memoContent) .frame(maxWidth: .infinity) - MemoAlarmIntervalFormView() + MemoAlarmIntervalFormView(selectedReminder: $viewModel.selectedReminder) .frame(maxWidth: .infinity) // MemoPreView() @@ -39,7 +39,9 @@ struct AddMemoView: View { .padding(.horizontal, 30) .frame(maxWidth: .infinity) Spacer() - AddMemoFooterView() + AddMemoFooterView(addMemoAction: { + viewModel.addNewMemo() + }) .frame(height: 60) .frame(maxWidth: .infinity) } @@ -56,6 +58,7 @@ struct AddMemoView_Previews: PreviewProvider { // Components struct MemoTypeFormView: View { + @Binding var memoType: String var body: some View { VStack(alignment: .leading, spacing: 10) { CardTitleText(title: "메모 타입") @@ -71,7 +74,7 @@ struct MemoTypeFormView: View { } struct MemoUrlTypeFormView: View { - @State private var link: String = "" + @Binding var link: String var body: some View { VStack(alignment: .leading, spacing: 10) { @@ -103,12 +106,12 @@ struct MemoUrlTypeFormView: View { struct MemoContentFormView: View { - @State private var memoContent: String = "" // 사용자가 입력할 내용을 저장할 상태 변수입니다. + @Binding var memoContent: String // 사용자가 입력할 내용을 저장할 상태 변수입니다. private let maxCharacterLimit = 250 - - init() { - UITextView.appearance().backgroundColor = .clear - } +// +// init() { +// UITextView.appearance().backgroundColor = .clear +// } var body: some View { VStack(alignment: .leading, spacing: 10) { @@ -145,6 +148,7 @@ struct MemoContentFormView: View { } struct MemoAlarmIntervalFormView: View { + @Binding var selectedReminder: String @State var isEditing: Bool = true var body: some View { @@ -195,11 +199,14 @@ struct MemoPreView: View { } struct AddMemoFooterView: View { + var addMemoAction: () -> Void var body: some View { VStack { + Button(action: addMemoAction) { Text("작성 완료") - .font(.system(size: 20, weight: .bold)) - .foregroundColor(.white) + .font(.system(size: 20, weight: .bold)) + .foregroundColor(.white) + } } .frame(maxWidth: .infinity) .padding(15)