From 8b1c777d2716a0e3515a54fef7eb9a2fc62b2165 Mon Sep 17 00:00:00 2001 From: jjangddu Date: Sun, 10 Dec 2023 07:52:27 +0900 Subject: [PATCH] =?UTF-8?q?[add]=20=EA=B2=80=EC=83=89=20=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mainviewmodel 생성, 검색기능 추가 --- .../Cuckoo/Cuckoo.xcodeproj/project.pbxproj | 8 ++--- .../UserInterfaceState.xcuserstate | Bin 62234 -> 60981 bytes .../ViewModels/MainContainerViewModel.swift | 8 ----- .../Cuckoo/ViewModels/MainViewModel.swift | 33 ++++++++++++++++++ .../Cuckoo/Cuckoo/Views/MainView.swift | 20 ++++++----- 5 files changed, 49 insertions(+), 20 deletions(-) delete mode 100644 Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MainContainerViewModel.swift create mode 100644 Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MainViewModel.swift diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.pbxproj b/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.pbxproj index 4a07358..114a782 100644 --- a/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.pbxproj +++ b/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.pbxproj @@ -33,11 +33,11 @@ 7D8DE4C12B1EB0A6004502FF /* NotificationLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D8DE4C02B1EB0A6004502FF /* NotificationLog.swift */; }; 7D9AB3CE2B2295AE00B00C09 /* SettingTagViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D9AB3CD2B2295AE00B00C09 /* SettingTagViewModel.swift */; }; 7DF6B4D22B1B204800B64CC0 /* MemoDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DF6B4D12B1B204800B64CC0 /* MemoDetailViewModel.swift */; }; - 7DF6B4D42B1B26E800B64CC0 /* MainContainerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DF6B4D32B1B26E800B64CC0 /* MainContainerViewModel.swift */; }; A82451F02AFE69A600EB4F54 /* AddMemoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82451EF2AFE69A600EB4F54 /* AddMemoView.swift */; }; A82451F22B09F2B300EB4F54 /* NavView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82451F12B09F2B300EB4F54 /* NavView.swift */; }; A82451F82B17470500EB4F54 /* AlarmView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A82451F72B17470500EB4F54 /* AlarmView.swift */; }; A84350DE2B2369B5006CDD60 /* MemoDummy.swift in Sources */ = {isa = PBXBuildFile; fileRef = A84350DD2B2369B5006CDD60 /* MemoDummy.swift */; }; + A84350E02B2372F5006CDD60 /* MainViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A84350DF2B2372F5006CDD60 /* MainViewModel.swift */; }; A8BC238F2AFA013B00A2F87F /* MainContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8BC238E2AFA013B00A2F87F /* MainContainerView.swift */; }; A8BC23912AFA014B00A2F87F /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8BC23902AFA014B00A2F87F /* MainView.swift */; }; /* End PBXBuildFile section */ @@ -89,11 +89,11 @@ 7D8DE4C02B1EB0A6004502FF /* NotificationLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationLog.swift; sourceTree = ""; }; 7D9AB3CD2B2295AE00B00C09 /* SettingTagViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingTagViewModel.swift; sourceTree = ""; }; 7DF6B4D12B1B204800B64CC0 /* MemoDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemoDetailViewModel.swift; sourceTree = ""; }; - 7DF6B4D32B1B26E800B64CC0 /* MainContainerViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContainerViewModel.swift; sourceTree = ""; }; A82451EF2AFE69A600EB4F54 /* AddMemoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddMemoView.swift; sourceTree = ""; }; A82451F12B09F2B300EB4F54 /* NavView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavView.swift; sourceTree = ""; }; A82451F72B17470500EB4F54 /* AlarmView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlarmView.swift; sourceTree = ""; }; A84350DD2B2369B5006CDD60 /* MemoDummy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemoDummy.swift; sourceTree = ""; }; + A84350DF2B2372F5006CDD60 /* MainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewModel.swift; sourceTree = ""; }; A8BC238E2AFA013B00A2F87F /* MainContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainContainerView.swift; sourceTree = ""; }; A8BC23902AFA014B00A2F87F /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -166,8 +166,8 @@ children = ( 00A73DFA2B0C31D700B59084 /* AddMemoViewModel.swift */, 7DF6B4D12B1B204800B64CC0 /* MemoDetailViewModel.swift */, - 7DF6B4D32B1B26E800B64CC0 /* MainContainerViewModel.swift */, 7D9AB3CD2B2295AE00B00C09 /* SettingTagViewModel.swift */, + A84350DF2B2372F5006CDD60 /* MainViewModel.swift */, ); path = ViewModels; sourceTree = ""; @@ -390,6 +390,7 @@ A82451F22B09F2B300EB4F54 /* NavView.swift in Sources */, 00A73E0B2B0C40B700B59084 /* 1_Init_AddNameAndTagView.swift in Sources */, 00A73DFD2B0C323800B59084 /* Memo.swift in Sources */, + A84350E02B2372F5006CDD60 /* MainViewModel.swift in Sources */, 7D9AB3CE2B2295AE00B00C09 /* SettingTagViewModel.swift in Sources */, 00A73E012B0C35D300B59084 /* Tag.swift in Sources */, 00652D962B143E70004C3345 /* SettingTagView.swift in Sources */, @@ -409,7 +410,6 @@ 00652D902B12E2DB004C3345 /* 2_Init_AddAlarmPresetView.swift in Sources */, 00652D942B143E51004C3345 /* MemoDetailView.swift in Sources */, 7A7F87832AEF559C00F14B11 /* CuckooApp.swift in Sources */, - 7DF6B4D42B1B26E800B64CC0 /* MainContainerViewModel.swift in Sources */, 00DBF6FC2B1F1FF1001EBCE3 /* SettingAlarmPresetView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.xcworkspace/xcuserdata/jjangddu.xcuserdatad/UserInterfaceState.xcuserstate b/Cuckoo_swiftUI/Cuckoo/Cuckoo.xcodeproj/project.xcworkspace/xcuserdata/jjangddu.xcuserdatad/UserInterfaceState.xcuserstate index 8bbfd08c1fb45c90b9419c31de0a3a45e9a5b3f4..26b16a4697424ed8a6128fbc3c51badcccf80633 100644 GIT binary patch delta 28564 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 L{>T5{Qw9GA`t{lE diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MainContainerViewModel.swift b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MainContainerViewModel.swift deleted file mode 100644 index 54bcd80..0000000 --- a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MainContainerViewModel.swift +++ /dev/null @@ -1,8 +0,0 @@ -// -// File.swift -// Cuckoo -// -// Created by DKSU on 2023/11/21. -// - -import Foundation diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MainViewModel.swift b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MainViewModel.swift new file mode 100644 index 0000000..b1fab82 --- /dev/null +++ b/Cuckoo_swiftUI/Cuckoo/Cuckoo/ViewModels/MainViewModel.swift @@ -0,0 +1,33 @@ +// +// MainViewModel.swift +// Cuckoo +// +// Created by 장동우 on 2023/12/09. +// + +import Foundation + +class MainViewModel: ObservableObject { + @Published var searchingText : String + @Published var filteredMemos : [Memo] + + + init(){ + self.searchingText = "" + self.filteredMemos = items + + } + + func filterMemos(searchingText: String){ + if searchingText.isEmpty{ + filteredMemos = items + }else{ + filteredMemos = items.filter { memo in + memo.title.localizedCaseInsensitiveContains(searchingText) || + memo.comment.localizedCaseInsensitiveContains(searchingText) || + memo.isPinned == true + } + } + } + +} diff --git a/Cuckoo_swiftUI/Cuckoo/Cuckoo/Views/MainView.swift b/Cuckoo_swiftUI/Cuckoo/Cuckoo/Views/MainView.swift index 518784d..396c8e4 100644 --- a/Cuckoo_swiftUI/Cuckoo/Cuckoo/Views/MainView.swift +++ b/Cuckoo_swiftUI/Cuckoo/Cuckoo/Views/MainView.swift @@ -9,14 +9,16 @@ import SwiftUI struct MainView: View { - + @StateObject var viewModel = MainViewModel() //title 수정용 @State private var isPresentingMemoSheet = false + @State private var searchContent: String = "" + // TODO : tag에서 미리보기 이미지 떼오는 hook var itemCount: Int { - return items.count + return viewModel.filteredMemos.count } var body: some View { @@ -27,12 +29,13 @@ struct MainView: View { Spacer() // Search Bar & Tag - MainViewSearchFilter() + MainViewSearchFilter(searchContent: $searchContent){ + viewModel.filterMemos(searchingText: searchContent) + } Spacer() - // Body ScrollView { - ForEach(items, id: \.id) { item in + ForEach(viewModel.filteredMemos, id: \.id) { item in VStack(alignment: .leading) { NavigationLink(destination: MemoDetailView(viewModel: MemoDetailViewModel(memo: item))) { MainContainerView(memo: item) @@ -61,7 +64,6 @@ struct MainView_PreViews: PreviewProvider { } } - // Components struct MainViewHeader: View { @@ -122,13 +124,15 @@ struct MainViewHeader: View { } struct MainViewSearchFilter: View { - @State private var searchContent: String = "" // 사용자가 입력할 내용을 저장할 상태 변수입니다. + @Binding var searchContent : String // 사용자가 입력할 내용을 저장할 상태 변수입니다. + var onCommit: () -> Void + var body: some View { // TextEditor의 스크롤 가능한 영역 설정 VStack(spacing: 18) { HStack(spacing: 0){ - TextField("검색어를 입력해주세요!", text: $searchContent) + TextField("검색어를 입력해주세요!", text: $searchContent,onCommit: onCommit) .font(.system(size: 14, weight: .medium)) .padding(.leading, 25) .padding(10)