From a4ddde90c4429c83c63efda84380c7ed64282e89 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Wed, 18 Oct 2023 23:50:11 +0900 Subject: [PATCH 01/11] [Feat] #501 - Update AnnouncementCell design --- .../Views/Components/AnnouncementCell.swift | 82 +++++++++++-------- .../ExploreShortcutView.swift | 9 +- .../Views/FeatureViews/UpdateInfoView.swift | 2 +- 3 files changed, 56 insertions(+), 37 deletions(-) diff --git a/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift b/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift index 4d27269d..f3a836cf 100644 --- a/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift +++ b/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift @@ -9,55 +9,73 @@ import SwiftUI struct AnnouncementCell: View { - var icon: String - var tagName: String - var discription: String - @Binding var isAnnouncementShow: Bool + var icon: String? + var tagName: String? + // var tagColor: UIColor? + var title: String + var description: String? + var isCanDismiss: Bool + var body: some View { ZStack { HStack(spacing: 12) { - Image(icon) - .resizable() - .aspectRatio(contentMode: .fill) - .frame(width: 52, height: 52) + if let icon { + Image(icon) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: 60, height: 60) + } VStack(alignment: .leading, spacing: 4) { - Text(tagName) - .shortcutsZipFootnote() - .fontWeight(.bold) - .foregroundStyle(Color.tagText) - .frame(height: 20) - .padding(.horizontal, 8) - .padding(.vertical, 2) - .background( - Capsule() - .fill( Color.tagBackground ) - .overlay( - Capsule() - .strokeBorder(Color.shortcutsZipPrimary, lineWidth: 1)) - ) - Text(discription) + if let tagName { + Text(tagName) + .shortcutsZipFootnote() + .fontWeight(.bold) + .foregroundStyle(Color.tagText) + .frame(height: 20) + .padding(.horizontal, 8) + .padding(.vertical, 2) + .background( + Capsule() + .fill( Color.tagBackground ) + .overlay( + Capsule() + .strokeBorder(Color.shortcutsZipPrimary, lineWidth: 1)) + ) + } + + Text(title) .shortcutsZipBody2() .fontWeight(.semibold) .foregroundStyle(Color.gray5) .lineLimit(1) + + if let description { + Text(description.lineBreaking) + .shortcutsZipFootnote() + .fontWeight(.semibold) + .foregroundStyle(Color.gray3) + .multilineTextAlignment(.leading) + .lineLimit(2) + } } Spacer() - - Button { - isAnnouncementShow = false - } label: { - Image(systemName: "xmark") - .shortcutsZipBody1() - .foregroundStyle(Color.gray4) - .frame(width: 24, height: 24) + if isCanDismiss { + Button { + isAnnouncementShow = false + } label: { + Image(systemName: "xmark") + .shortcutsZipBody1() + .foregroundStyle(Color.gray4) + .frame(width: 24, height: 24) + } } } - .padding(.all, 20) + .padding(.all, 16) .background( background ) } .padding(.horizontal, 16) diff --git a/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift b/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift index b13314d3..846cbe89 100644 --- a/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift +++ b/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift @@ -12,7 +12,7 @@ struct ExploreShortcutView: View { @StateObject var viewModel: ExploreShortcutViewModel // TODO: 추후 UpdateInfoView 제작 시 true로 변경해서 cell 보이게 하기 - @AppStorage("isUpdateAnnnouncementShow") var isUpdateAnnnouncementShow: Bool = false + @AppStorage("isUpdateAnnnouncementShow") var isUpdateAnnnouncementShow: Bool = true let randomCategories: [Category] @@ -24,10 +24,11 @@ struct ExploreShortcutView: View { Button { viewModel.announcementCellDidTap() } label: { - AnnouncementCell(icon: "updateAppIcon", + AnnouncementCell(isAnnouncementShow: $isUpdateAnnnouncementShow, + icon: "updateAppIcon", tagName: TextLiteral.updateTag, - discription: TextLiteral.updateCellDescription, - isAnnouncementShow: $isUpdateAnnnouncementShow) + title: TextLiteral.updateCellDescription, + isCanDismiss: true) } .id(000) } diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift index 03c76f7a..2d2ecc9c 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift @@ -9,7 +9,7 @@ import SwiftUI struct UpdateInfoView: View { var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + Text("About Update") } } From fac100227dd9004540736522b366e7534e4b4a27 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Fri, 20 Oct 2023 10:51:27 +0900 Subject: [PATCH 02/11] [Feat] #501 - Create UpdateInfoView --- .../HeaderImage.imageset/Contents.json | 21 ++++ .../HeaderImage.imageset/HeaderImage.png | Bin 0 -> 15660 bytes .../easierExternalURL.imageset/Contents.json | 21 ++++ .../easierExternalURL.png | Bin 0 -> 119843 bytes .../Contents.json | 21 ++++ .../easierShortcutWrite.png | Bin 0 -> 108909 bytes .../Extensions/View/View+Navigation.swift | 5 + .../Model/NavigationStackModel.swift | 4 + HappyAnding/HappyAnding/TextLiteral.swift | 11 +- .../Views/Components/AnnouncementCell.swift | 2 +- .../ExploreShortcutView.swift | 15 +-- .../Views/FeatureViews/UpdateInfoView.swift | 115 +++++++++++++++++- .../Views/MyPageViews/SettingView.swift | 4 + 13 files changed, 206 insertions(+), 13 deletions(-) create mode 100644 HappyAnding/HappyAnding/Assets.xcassets/HeaderImage.imageset/Contents.json create mode 100644 HappyAnding/HappyAnding/Assets.xcassets/HeaderImage.imageset/HeaderImage.png create mode 100644 HappyAnding/HappyAnding/Assets.xcassets/easierExternalURL.imageset/Contents.json create mode 100644 HappyAnding/HappyAnding/Assets.xcassets/easierExternalURL.imageset/easierExternalURL.png create mode 100644 HappyAnding/HappyAnding/Assets.xcassets/easierShortcutWrite.imageset/Contents.json create mode 100644 HappyAnding/HappyAnding/Assets.xcassets/easierShortcutWrite.imageset/easierShortcutWrite.png diff --git a/HappyAnding/HappyAnding/Assets.xcassets/HeaderImage.imageset/Contents.json b/HappyAnding/HappyAnding/Assets.xcassets/HeaderImage.imageset/Contents.json new file mode 100644 index 00000000..7bde81fc --- /dev/null +++ b/HappyAnding/HappyAnding/Assets.xcassets/HeaderImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "HeaderImage.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HappyAnding/HappyAnding/Assets.xcassets/HeaderImage.imageset/HeaderImage.png b/HappyAnding/HappyAnding/Assets.xcassets/HeaderImage.imageset/HeaderImage.png new file mode 100644 index 0000000000000000000000000000000000000000..d588de87db481c5e17725ae73f6f964f9dd1bf96 GIT binary patch literal 15660 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 literal 0 HcmV?d00001 diff --git a/HappyAnding/HappyAnding/Assets.xcassets/easierExternalURL.imageset/Contents.json b/HappyAnding/HappyAnding/Assets.xcassets/easierExternalURL.imageset/Contents.json new file mode 100644 index 00000000..41c78ee2 --- /dev/null +++ b/HappyAnding/HappyAnding/Assets.xcassets/easierExternalURL.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "easierExternalURL.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HappyAnding/HappyAnding/Assets.xcassets/easierExternalURL.imageset/easierExternalURL.png b/HappyAnding/HappyAnding/Assets.xcassets/easierExternalURL.imageset/easierExternalURL.png new file mode 100644 index 0000000000000000000000000000000000000000..df891cb029e251b6459e06c0f5f540a588528771 GIT binary patch literal 119843 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 literal 0 HcmV?d00001 diff --git a/HappyAnding/HappyAnding/Assets.xcassets/easierShortcutWrite.imageset/Contents.json b/HappyAnding/HappyAnding/Assets.xcassets/easierShortcutWrite.imageset/Contents.json new file mode 100644 index 00000000..33382f09 --- /dev/null +++ b/HappyAnding/HappyAnding/Assets.xcassets/easierShortcutWrite.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "easierShortcutWrite.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HappyAnding/HappyAnding/Assets.xcassets/easierShortcutWrite.imageset/easierShortcutWrite.png b/HappyAnding/HappyAnding/Assets.xcassets/easierShortcutWrite.imageset/easierShortcutWrite.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1ba369037b09d4cfaa117c0f6530dfb085aafd GIT binary patch literal 108909 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 z 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 literal 0 HcmV?d00001 diff --git a/HappyAnding/HappyAnding/Extensions/View/View+Navigation.swift b/HappyAnding/HappyAnding/Extensions/View/View+Navigation.swift index 37dbc21c..0fd9f56e 100644 --- a/HappyAnding/HappyAnding/Extensions/View/View+Navigation.swift +++ b/HappyAnding/HappyAnding/Extensions/View/View+Navigation.swift @@ -101,6 +101,8 @@ extension View { WithdrawalView() case is CheckVersionView: CheckVersionView() + case is NavigationUpdateInfo: + UpdateInfoView() default: EmptyView() } @@ -151,5 +153,8 @@ struct NavigationViewModifier: ViewModifier { .navigationDestination(for: NavigationCheckVersion.self) { _ in CheckVersionView() } + .navigationDestination(for: NavigationUpdateInfo.self) { _ in + UpdateInfoView() + } } } diff --git a/HappyAnding/HappyAnding/Model/NavigationStackModel.swift b/HappyAnding/HappyAnding/Model/NavigationStackModel.swift index a80d83c8..8ee55241 100644 --- a/HappyAnding/HappyAnding/Model/NavigationStackModel.swift +++ b/HappyAnding/HappyAnding/Model/NavigationStackModel.swift @@ -47,3 +47,7 @@ enum NavigationWithdrawal: Hashable, Equatable { enum NavigationCheckVersion: Hashable, Equatable { case first } + +enum NavigationUpdateInfo: Hashable, Equatable { + case first +} diff --git a/HappyAnding/HappyAnding/TextLiteral.swift b/HappyAnding/HappyAnding/TextLiteral.swift index e5222e99..d2c40b01 100644 --- a/HappyAnding/HappyAnding/TextLiteral.swift +++ b/HappyAnding/HappyAnding/TextLiteral.swift @@ -34,10 +34,10 @@ enum TextLiteral { //MARK: - announcementCell static let newFeatureTag: String = "새로운 기능" - static let updateTag: String = "업데이트" + static let appUpdateTag: String = "업데이트" //MARK: - updateCell - static let updateCellDescription: String = "업데이트된 내용 살펴보기" + static let updateCellDescription: String = "새로운 기능들 살펴보기" //MARK: - ShortcutGrade static let shortcutGradeTitle: String = "단축어 작성 등급" @@ -256,4 +256,11 @@ enum TextLiteral { //MARK: - GradeAlertView static let gradeAlertMessage: String = "단축어 작성 레벨이 상승했어요!" static let gradeAlertMessageBlank: String = "" + + //MARK: -UpdateInfoView + static let updateInfoViewTitle: String = "ShortcutsZip 업데이트 소식" + static let updateInfoViewVersion: String = "2023.10.23 | 1.3.3" + static let updateInfoViewFooterTitle: String = "ShortcutsZip에게\n전하고 싶은 말이 있나요?" + static let updateInfoViewComment: String = "의견 남기러 가기" + } diff --git a/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift b/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift index f3a836cf..e18486bc 100644 --- a/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift +++ b/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift @@ -66,7 +66,7 @@ struct AnnouncementCell: View { Spacer() if isCanDismiss { Button { - isAnnouncementShow = false + self.isAnnouncementShow = false } label: { Image(systemName: "xmark") .shortcutsZipBody1() diff --git a/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift b/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift index 846cbe89..9d7c0fa2 100644 --- a/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift +++ b/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift @@ -11,7 +11,6 @@ struct ExploreShortcutView: View { @StateObject var viewModel: ExploreShortcutViewModel - // TODO: 추후 UpdateInfoView 제작 시 true로 변경해서 cell 보이게 하기 @AppStorage("isUpdateAnnnouncementShow") var isUpdateAnnnouncementShow: Bool = true let randomCategories: [Category] @@ -20,17 +19,20 @@ struct ExploreShortcutView: View { ScrollViewReader { proxy in ScrollView { VStack(spacing: 32) { + if isUpdateAnnnouncementShow { Button { - viewModel.announcementCellDidTap() + isUpdateAnnnouncementShow = false +// viewModel.announcementCellDidTap() } label: { AnnouncementCell(isAnnouncementShow: $isUpdateAnnnouncementShow, icon: "updateAppIcon", - tagName: TextLiteral.updateTag, + tagName: TextLiteral.appUpdateTag, title: TextLiteral.updateCellDescription, isCanDismiss: true) + .navigationLinkRouter(data: NavigationUpdateInfo.first) + .id(000) } - .id(000) } sectionView(with: .recent) @@ -96,11 +98,6 @@ struct ExploreShortcutView: View { } } .navigationBarBackground ({ Color.shortcutsZipBackground }) - .sheet(isPresented: $viewModel.isAnnouncementCellShowing) { - UpdateInfoView() - .presentationDetents([.large]) - .presentationDragIndicator(.visible) - } } } diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift index 2d2ecc9c..cb538651 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift @@ -9,8 +9,121 @@ import SwiftUI struct UpdateInfoView: View { var body: some View { - Text("About Update") + ScrollView { + VStack(alignment: .leading, spacing: 52) { + + header() + + //TODO: Model 만들어서 Foreach로 돌리기. 다음 업데이트 + aboutFeatureCell(type: "기능 업데이트", + title: "더욱 쉬워진 단축어 작성 과정", + image: "easierShortcutWrite", + description: "이제는 단축어 작성 과정에서 제목을 직접 입력하지 않아도 괜찮아요. 단축어 링크만 붙여넣으면 ShortcutsZip이 자동으로 제목을 채워준답니다. 이 기능은 단축어 앱의 공유 시트에서 바로 작성할 때도 만나볼 수 있어요.") + + aboutFeatureCell(type: "기능 업데이트", + title: "간편하게 외부 링크 살펴보기", + image: "easierExternalURL", + description: "다른 유저에게 단축어에 대해 더 자세한 정보를 알려 주고 싶을 때가 있지 않나요? 단축어 설명이나 댓글에 URL을 입력하면 ShortcutsZip이 자동으로 인식해 해당 웹사이트로 바로 이동할 수 있는 링크를 제공해요.") + + aboutFeatureCell(type: "기능 업데이트", + title: "단축어와 댓글 작성 날짜 확인", + image: nil, + description: "이제 단축어를 업데이트하지 않아도 언제 업로드 된 단축어인지 알 수 있어요. 댓글에도 날짜가 표시되어서 내 단축어에 달린 최근 댓글에 빠르게 피드백 할 수 있답니다.") + + footer() + + } + .padding(.bottom, 44) + } + .edgesIgnoringSafeArea(.top) + .navigationBarTitleDisplayMode(.inline) + .background(Color.shortcutsZipBackground) } + + //MARK: - Header + @ViewBuilder + private func header() -> some View { + VStack(alignment: .leading, spacing: 20) { + StickyHeader(height: 280, image: "HeaderImage") + VStack(alignment: .leading, spacing: 8) { + Text(TextLiteral.updateInfoViewTitle) + .shortcutsZipTitle1() + .foregroundStyle(Color.gray6) + Text(TextLiteral.updateInfoViewVersion) + .shortcutsZipBody1() + .foregroundStyle(Color.gray4) + } + .padding(.horizontal, 20) + } + } + + //MARK: - Feature + @ViewBuilder + private func aboutFeatureCell(type: String, title: String, image: String?, + description: String) -> some View { + VStack(alignment: .leading, spacing: 8) { + Text(type) + .shortcutsZipFootnote() + .fontWeight(.bold) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .foregroundStyle(Color.tagText) + .background(Color.tagBackground) + .clipShape(Capsule()) + .overlay( + Capsule() + .strokeBorder(Color.shortcutsZipPrimary) + ) + Text(title.lineBreaking) + .shortcutsZipTitle2() + .foregroundStyle(Color.gray6) + if let image { + Image(image) + .resizable() + .aspectRatio(contentMode: .fill) + .cornerRadius(16) + .onLongPressGesture { + copyImageToClipboard(imageName: image) + } + } + Text(description.lineBreaking) + .shortcutsZipBody2() + .foregroundStyle(Color.gray5) + .multilineTextAlignment(.leading) + } + .padding(.horizontal, 20) + } + + //MARK: - Footer + @ViewBuilder + private func footer() -> some View { + VStack(alignment: .center, spacing: 20) { + Text(TextLiteral.updateInfoViewFooterTitle) + .shortcutsZipTitle2() + .foregroundStyle(Color.gray6) + .multilineTextAlignment(.center) + Button { + //TODO: ShortcutsZipFormView 띄우는 로직 추가 + } label: { + Text(TextLiteral.updateInfoViewComment) + .shortcutsZipBody1() + .fontWeight(.semibold) + .padding(.horizontal, 24) + .padding(.vertical, 12) + .foregroundStyle(Color.textButton) + .background(Color.shortcutsZipPrimary) + .clipShape(RoundedRectangle(cornerRadius: 16)) + } + } + .frame(maxWidth: .infinity) + } + + private func copyImageToClipboard(imageName: String) { + if let image = UIImage(named: imageName) { + UIPasteboard.general.image = image + } + } + } struct UpdateInfoView_Previews: PreviewProvider { diff --git a/HappyAnding/HappyAnding/Views/MyPageViews/SettingView.swift b/HappyAnding/HappyAnding/Views/MyPageViews/SettingView.swift index 58a23980..c7325ee9 100644 --- a/HappyAnding/HappyAnding/Views/MyPageViews/SettingView.swift +++ b/HappyAnding/HappyAnding/Views/MyPageViews/SettingView.swift @@ -34,6 +34,10 @@ struct SettingView: View { SettingCell(title: TextLiteral.settingViewVersion) .navigationLinkRouter(data: NavigationCheckVersion.first) + // MARK: - 업데이트 소식 + SettingCell(title: "업데이트 소식") + .navigationLinkRouter(data: NavigationUpdateInfo.first) + if !useWithoutSignIn { divider From 1b68e950f99e1ed7c6379f3870b178e70c4ed149 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Mon, 23 Oct 2023 16:08:56 +0900 Subject: [PATCH 03/11] [Feat] #501 - Create ShortcutsZipFormView --- .../HappyAnding.xcodeproj/project.pbxproj | 4 ++ .../FeatureViews/ShortcutsZipFormView.swift | 69 +++++++++++++++++++ .../Views/FeatureViews/UpdateInfoView.swift | 42 +++++++---- 3 files changed, 103 insertions(+), 12 deletions(-) create mode 100644 HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift diff --git a/HappyAnding/HappyAnding.xcodeproj/project.pbxproj b/HappyAnding/HappyAnding.xcodeproj/project.pbxproj index 04cd3a1f..8c08d967 100644 --- a/HappyAnding/HappyAnding.xcodeproj/project.pbxproj +++ b/HappyAnding/HappyAnding.xcodeproj/project.pbxproj @@ -99,6 +99,7 @@ A365209B29B1F26C00E9B07A /* Image+View.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9AC2BB92935D34C00165820 /* Image+View.swift */; }; A3766B232904330300708F83 /* ReadCurationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3766B222904330300708F83 /* ReadCurationView.swift */; }; A38115BA292B447D0043E8B8 /* ShortcutCardCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38115B9292B447D0043E8B8 /* ShortcutCardCell.swift */; }; + A38F3B1F2AE62E8D0036FCAC /* ShortcutsZipFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38F3B1E2AE62E8D0036FCAC /* ShortcutsZipFormView.swift */; }; A3A6AD1E292763E2004C49DC /* ShareExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = A3A6AD14292763E2004C49DC /* ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; A3C404D62A23D0E800C3BA75 /* UpdateInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C404D52A23D0E800C3BA75 /* UpdateInfoView.swift */; }; A3C5576C292BE084003907DC /* ShareExtensionWriteShortcutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C5576B292BE084003907DC /* ShareExtensionWriteShortcutView.swift */; }; @@ -279,6 +280,7 @@ A35DB3382927E9630011A28B /* CustomShareNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomShareNavigationController.swift; sourceTree = ""; }; A3766B222904330300708F83 /* ReadCurationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReadCurationView.swift; sourceTree = ""; }; A38115B9292B447D0043E8B8 /* ShortcutCardCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutCardCell.swift; sourceTree = ""; }; + A38F3B1E2AE62E8D0036FCAC /* ShortcutsZipFormView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutsZipFormView.swift; sourceTree = ""; }; A3A6AD14292763E2004C49DC /* ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; A3A6AD1B292763E2004C49DC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; A3A6AD232927BA06004C49DC /* ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ShareExtension.entitlements; sourceTree = ""; }; @@ -692,6 +694,7 @@ children = ( A34BF82C29AFC34F009BC946 /* AboutShortcutGradeView.swift */, A3C404D52A23D0E800C3BA75 /* UpdateInfoView.swift */, + A38F3B1E2AE62E8D0036FCAC /* ShortcutsZipFormView.swift */, ); path = FeatureViews; sourceTree = ""; @@ -985,6 +988,7 @@ 87E99CAD28FFF261009B691F /* ReadShortcutView.swift in Sources */, A33F74AE2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift in Sources */, 87E606B22910649B00C3DA13 /* SignInWithAppleView.swift in Sources */, + A38F3B1F2AE62E8D0036FCAC /* ShortcutsZipFormView.swift in Sources */, F91F09DF29AE0B5E00E04FA0 /* GradeAlertView.swift in Sources */, 4D061BB82A47531800F76835 /* ExploreShortcutView.swift in Sources */, 87E99CEC29080C30009B691F /* Curation.swift in Sources */, diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift new file mode 100644 index 00000000..7f9e09c1 --- /dev/null +++ b/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift @@ -0,0 +1,69 @@ +// +// ShortcutsZipFormView.swift +// HappyAnding +// +// Created by HanGyeongjun on 10/23/23. +// + +import SwiftUI + +struct ShortcutsZipFormView: View { + + enum Field: Hashable { + case text + } + + @FocusState var focusState: Bool + @State var formText: String = "" + + var body: some View { + VStack(spacing: 0) { + ScrollView { + VStack(alignment: .leading, spacing: 24) { + Text("ShortcutsZip에게\n전하고 싶은 말을 남겨 주세요") + .shortcutsZipTitle1() + .foregroundStyle(Color.gray6) + Text("기능 제안, 칭찬 등 무엇이든 작성해주세요") + .shortcutsZipHeadline() + .foregroundStyle(Color.gray4) + TextField("답변 입력하기", text: $formText, axis: .vertical) + .shortcutsZipBody1() + .padding(.all, 12) + .background( Color.gray1 ) + .cornerRadius(12, corners: .allCorners) + .lineLimit(5) + .focused($focusState, equals: true) + } + .padding(.top, 40) + .padding(16) + } + .onAppear() { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { + self.focusState = true + } + } + + Button { + //api 연결 + } label: { + Text("확인") + .shortcutsZipBody1() + .fontWeight(.semibold) + .foregroundStyle( Color.textIcon ) + .padding(.vertical, 16) + .frame(maxWidth: .infinity) + .background( formText.isEmpty ? Color.gray3 : Color.shortcutsZipPrimary ) + + } + .disabled(formText.isEmpty) + } + .background( Color.shortcutsZipBackground ) + .onTapGesture { + UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) + } + } +} + +#Preview { + ShortcutsZipFormView() +} diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift index cb538651..2965d4ec 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift @@ -8,6 +8,9 @@ import SwiftUI struct UpdateInfoView: View { + + @State var isShowFormView = false + var body: some View { ScrollView { VStack(alignment: .leading, spacing: 52) { @@ -30,7 +33,26 @@ struct UpdateInfoView: View { image: nil, description: "이제 단축어를 업데이트하지 않아도 언제 업로드 된 단축어인지 알 수 있어요. 댓글에도 날짜가 표시되어서 내 단축어에 달린 최근 댓글에 빠르게 피드백 할 수 있답니다.") - footer() +// footer(isButtonToggle: isShowFormView) + VStack(alignment: .center, spacing: 20) { + Text(TextLiteral.updateInfoViewFooterTitle) + .shortcutsZipTitle2() + .foregroundStyle(Color.gray6) + .multilineTextAlignment(.center) + Button { + isShowFormView.toggle() + } label: { + Text(TextLiteral.updateInfoViewComment) + .shortcutsZipBody1() + .fontWeight(.semibold) + .padding(.horizontal, 24) + .padding(.vertical, 12) + .foregroundStyle(Color.textButton) + .background(Color.shortcutsZipPrimary) + .clipShape(RoundedRectangle(cornerRadius: 16)) + } + } + .frame(maxWidth: .infinity) } .padding(.bottom, 44) @@ -38,6 +60,12 @@ struct UpdateInfoView: View { .edgesIgnoringSafeArea(.top) .navigationBarTitleDisplayMode(.inline) .background(Color.shortcutsZipBackground) + .sheet(isPresented: self.$isShowFormView) { + ShortcutsZipFormView() + .presentationDetents([.large]) + .presentationDragIndicator(.visible) + } + } //MARK: - Header @@ -82,9 +110,6 @@ struct UpdateInfoView: View { .resizable() .aspectRatio(contentMode: .fill) .cornerRadius(16) - .onLongPressGesture { - copyImageToClipboard(imageName: image) - } } Text(description.lineBreaking) .shortcutsZipBody2() @@ -103,7 +128,7 @@ struct UpdateInfoView: View { .foregroundStyle(Color.gray6) .multilineTextAlignment(.center) Button { - //TODO: ShortcutsZipFormView 띄우는 로직 추가 +// isButtonToggle.toggle() } label: { Text(TextLiteral.updateInfoViewComment) .shortcutsZipBody1() @@ -117,13 +142,6 @@ struct UpdateInfoView: View { } .frame(maxWidth: .infinity) } - - private func copyImageToClipboard(imageName: String) { - if let image = UIImage(named: imageName) { - UIPasteboard.general.image = image - } - } - } struct UpdateInfoView_Previews: PreviewProvider { From 5c5ed6d435387899ca016b6ba712549a770c1c93 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Sat, 28 Oct 2023 13:02:03 +0900 Subject: [PATCH 04/11] [Feat] #501 - Modifiy view designs --- .../FeatureViews/ShortcutsZipFormView.swift | 48 +++++++++++++++---- .../Views/FeatureViews/UpdateInfoView.swift | 34 ++++--------- 2 files changed, 47 insertions(+), 35 deletions(-) diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift index 7f9e09c1..e53fba74 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift @@ -8,13 +8,16 @@ import SwiftUI struct ShortcutsZipFormView: View { - + enum Field: Hashable { case text } + @EnvironmentObject var shortcutsZipViewModel: ShortcutsZipViewModel + @FocusState var focusState: Bool @State var formText: String = "" + @State var isFormSendSuccess: Bool = false var body: some View { VStack(spacing: 0) { @@ -26,25 +29,52 @@ struct ShortcutsZipFormView: View { Text("기능 제안, 칭찬 등 무엇이든 작성해주세요") .shortcutsZipHeadline() .foregroundStyle(Color.gray4) - TextField("답변 입력하기", text: $formText, axis: .vertical) - .shortcutsZipBody1() - .padding(.all, 12) - .background( Color.gray1 ) - .cornerRadius(12, corners: .allCorners) - .lineLimit(5) - .focused($focusState, equals: true) + + if (isFormSendSuccess) { + HStack { + Spacer() + VStack(alignment: .center, spacing: 16) { + Image(systemName: "checkmark.circle.fill") + .largeShortcutIcon() + .foregroundStyle(Color.shortcutsZipSuccess) + Text("소중한 의견을 잘 전달했어요") + .shortcutsZipHeadline() + .foregroundStyle(Color.gray4) + } + .padding(.all, 16) + .background( Color.gray1 ) + .cornerRadius(16) + Spacer() + } + } else { + TextField("답변 입력하기", text: $formText, axis: .vertical) + .shortcutsZipBody1() + .padding(.horizontal, 12) + .padding(.vertical, 16) + .overlay( + RoundedRectangle(cornerRadius: 12) + .strokeBorder(lineWidth: 1) + .foregroundStyle(Color.gray4) + ) + .cornerRadius(12, corners: .allCorners) + .lineLimit(5) + .focused($focusState, equals: true) + } + } .padding(.top, 40) .padding(16) } .onAppear() { - DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { self.focusState = true } } Button { //api 연결 + formText = "" + isFormSendSuccess = true } label: { Text("확인") .shortcutsZipBody1() diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift index 2965d4ec..724be351 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift @@ -8,6 +8,9 @@ import SwiftUI struct UpdateInfoView: View { + @Environment(\.loginAlertKey) var loginAlerter + + @AppStorage("useWithoutSignIn") var useWithoutSignIn: Bool = false @State var isShowFormView = false @@ -33,14 +36,17 @@ struct UpdateInfoView: View { image: nil, description: "이제 단축어를 업데이트하지 않아도 언제 업로드 된 단축어인지 알 수 있어요. 댓글에도 날짜가 표시되어서 내 단축어에 달린 최근 댓글에 빠르게 피드백 할 수 있답니다.") -// footer(isButtonToggle: isShowFormView) VStack(alignment: .center, spacing: 20) { Text(TextLiteral.updateInfoViewFooterTitle) .shortcutsZipTitle2() .foregroundStyle(Color.gray6) .multilineTextAlignment(.center) Button { - isShowFormView.toggle() + if !useWithoutSignIn { + isShowFormView.toggle() + } else { + loginAlerter.isPresented = true + } } label: { Text(TextLiteral.updateInfoViewComment) .shortcutsZipBody1() @@ -118,30 +124,6 @@ struct UpdateInfoView: View { } .padding(.horizontal, 20) } - - //MARK: - Footer - @ViewBuilder - private func footer() -> some View { - VStack(alignment: .center, spacing: 20) { - Text(TextLiteral.updateInfoViewFooterTitle) - .shortcutsZipTitle2() - .foregroundStyle(Color.gray6) - .multilineTextAlignment(.center) - Button { -// isButtonToggle.toggle() - } label: { - Text(TextLiteral.updateInfoViewComment) - .shortcutsZipBody1() - .fontWeight(.semibold) - .padding(.horizontal, 24) - .padding(.vertical, 12) - .foregroundStyle(Color.textButton) - .background(Color.shortcutsZipPrimary) - .clipShape(RoundedRectangle(cornerRadius: 16)) - } - } - .frame(maxWidth: .infinity) - } } struct UpdateInfoView_Previews: PreviewProvider { From 17339a9fd67cee261eaf973dcee55f7962002280 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Sun, 29 Oct 2023 20:32:10 +0900 Subject: [PATCH 05/11] [Feat] #501 - Change to TextLiteral --- HappyAnding/HappyAnding/TextLiteral.swift | 8 +++++++- .../Views/FeatureViews/ShortcutsZipFormView.swift | 12 +++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/HappyAnding/HappyAnding/TextLiteral.swift b/HappyAnding/HappyAnding/TextLiteral.swift index d2c40b01..9e9d5ac6 100644 --- a/HappyAnding/HappyAnding/TextLiteral.swift +++ b/HappyAnding/HappyAnding/TextLiteral.swift @@ -17,6 +17,7 @@ enum TextLiteral { static let cancel: String = "취소" static let next: String = "다음" static let upload: String = "업로드" + static let confirm: String = "확인" static let close: String = "닫기" static let done: String = "완료" static let edit: String = "편집" @@ -262,5 +263,10 @@ enum TextLiteral { static let updateInfoViewVersion: String = "2023.10.23 | 1.3.3" static let updateInfoViewFooterTitle: String = "ShortcutsZip에게\n전하고 싶은 말이 있나요?" static let updateInfoViewComment: String = "의견 남기러 가기" - + + //MARK: -ShortcutsZipFormView + static let formViewTitle: String = "ShortcutsZip에게\n전하고 싶은 말을 남겨 주세요" + static let formViewSubTitle: String = "기능 제안, 칭찬 등 무엇이든 작성해주세요" + static let formViewSuccessMessage: String = "소중한 의견을 잘 전달했어요" + static let formViewTextPlaceholder: String = "답변 입력하기" } diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift index e53fba74..ae20cd26 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift @@ -23,10 +23,10 @@ struct ShortcutsZipFormView: View { VStack(spacing: 0) { ScrollView { VStack(alignment: .leading, spacing: 24) { - Text("ShortcutsZip에게\n전하고 싶은 말을 남겨 주세요") + Text(TextLiteral.formViewTitle) .shortcutsZipTitle1() .foregroundStyle(Color.gray6) - Text("기능 제안, 칭찬 등 무엇이든 작성해주세요") + Text(TextLiteral.formViewSubTitle) .shortcutsZipHeadline() .foregroundStyle(Color.gray4) @@ -37,7 +37,7 @@ struct ShortcutsZipFormView: View { Image(systemName: "checkmark.circle.fill") .largeShortcutIcon() .foregroundStyle(Color.shortcutsZipSuccess) - Text("소중한 의견을 잘 전달했어요") + Text(TextLiteral.formViewSuccessMessage) .shortcutsZipHeadline() .foregroundStyle(Color.gray4) } @@ -47,7 +47,7 @@ struct ShortcutsZipFormView: View { Spacer() } } else { - TextField("답변 입력하기", text: $formText, axis: .vertical) + TextField(TextLiteral.formViewTextPlaceholder, text: $formText, axis: .vertical) .shortcutsZipBody1() .padding(.horizontal, 12) .padding(.vertical, 16) @@ -73,10 +73,12 @@ struct ShortcutsZipFormView: View { Button { //api 연결 + print(shortcutsZipViewModel.userInfo?.nickname ?? "") + print(Date.now) formText = "" isFormSendSuccess = true } label: { - Text("확인") + Text(TextLiteral.confirm) .shortcutsZipBody1() .fontWeight(.semibold) .foregroundStyle( Color.textIcon ) From 1fb4f761414e6f214a334d761cbe39acfec13452 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Sun, 29 Oct 2023 20:38:02 +0900 Subject: [PATCH 06/11] [Refactor] Delete TextLiteral duplicate codes --- HappyAnding/HappyAnding/TextLiteral.swift | 2 -- .../HappyAnding/Views/Components/NicknameTextField.swift | 2 +- HappyAnding/ShareExtension/CustomShareViewController.swift | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/HappyAnding/HappyAnding/TextLiteral.swift b/HappyAnding/HappyAnding/TextLiteral.swift index 9e9d5ac6..9319b75e 100644 --- a/HappyAnding/HappyAnding/TextLiteral.swift +++ b/HappyAnding/HappyAnding/TextLiteral.swift @@ -84,7 +84,6 @@ enum TextLiteral { static let nicknameTextFieldDuplicateTitle: String = "닉네임 중복 확인" static let nicknameTextFieldDuplicateSuccessMessage: String = "사용할 수 있는 닉네임이에요" static let nicknameTextFieldDuplicateFailMessage: String = "이미 사용 중인 닉네임이에요" - static let nicknameTextFieldDuplicateSuccessLabel: String = "확인" static let nicknameTextFieldDuplicateFailLabel: String = "다시 입력하기" static let nicknameTextFieldTitle: String = "닉네임 (최대 8글자)" static let nicknameTextFieldDuplicateCheck: String = "중복확인" @@ -252,7 +251,6 @@ enum TextLiteral { static let customShareViewControllerSignInAlertMessage: String = "이 기능은 로그인 후 사용할 수 있는 기능이에요" static let customShareViewControllerLinkVaildAlertTitle: String = "잘못된 접근이에요" static let customShareViewControllerLinkVaildAlertMessage: String = "해당 링크는 ShortcutsZip으로 공유할 수 없어요" - static let customShareViewControllerCheck: String = "확인" //MARK: - GradeAlertView static let gradeAlertMessage: String = "단축어 작성 레벨이 상승했어요!" diff --git a/HappyAnding/HappyAnding/Views/Components/NicknameTextField.swift b/HappyAnding/HappyAnding/Views/Components/NicknameTextField.swift index 2bfe6368..0131ec48 100644 --- a/HappyAnding/HappyAnding/Views/Components/NicknameTextField.swift +++ b/HappyAnding/HappyAnding/Views/Components/NicknameTextField.swift @@ -101,7 +101,7 @@ struct NicknameTextField: View { .alert(TextLiteral.nicknameTextFieldDuplicateTitle, isPresented: $isCheckedDuplicated) { Button { } label: { - Text(nicknameState == .success ? TextLiteral.nicknameTextFieldDuplicateSuccessLabel : TextLiteral.nicknameTextFieldDuplicateFailLabel) + Text(nicknameState == .success ? TextLiteral.confirm : TextLiteral.nicknameTextFieldDuplicateFailLabel) } } message: { Text(nicknameState == .success ? TextLiteral.nicknameTextFieldDuplicateSuccessMessage : TextLiteral.nicknameTextFieldDuplicateFailMessage) diff --git a/HappyAnding/ShareExtension/CustomShareViewController.swift b/HappyAnding/ShareExtension/CustomShareViewController.swift index 8e454482..b4e6422d 100644 --- a/HappyAnding/ShareExtension/CustomShareViewController.swift +++ b/HappyAnding/ShareExtension/CustomShareViewController.swift @@ -32,7 +32,7 @@ class CustomShareViewController: UIViewController { if UserDefaults.shared.string(forKey: "ShareUserInfo") == nil || UserDefaults.shared.bool(forKey: "isSignInForShareExtension") == false { let alert = UIAlertController(title: TextLiteral.customShareViewControllerSignInAlertTitle, message: TextLiteral.customShareViewControllerSignInAlertMessage, preferredStyle: .alert) - let action = UIAlertAction(title: TextLiteral.customShareViewControllerCheck, style: .default) { _ in + let action = UIAlertAction(title: TextLiteral.confirm, style: .default) { _ in self.extensionContext?.completeRequest(returningItems: [], completionHandler: nil) } alert.addAction(action) @@ -44,7 +44,7 @@ class CustomShareViewController: UIViewController { //링크가 적절하지 않을 때 if !self.shareExtensionViewModel.isLinkValid(content: "\(url)") { let alert = UIAlertController(title: TextLiteral.customShareViewControllerLinkVaildAlertTitle, message: TextLiteral.customShareViewControllerLinkVaildAlertMessage, preferredStyle: .alert) - let action = UIAlertAction(title: TextLiteral.customShareViewControllerCheck, style: .default) { action in + let action = UIAlertAction(title: TextLiteral.confirm, style: .default) { action in self.extensionContext?.completeRequest(returningItems: [], completionHandler: nil) } alert.addAction(action) From 643bc06f6189f3aab16c8da496438f8b96892d60 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Sun, 29 Oct 2023 21:01:10 +0900 Subject: [PATCH 07/11] [Feat] #501 - Use TextLiteral in UpdateInfoView --- HappyAnding/HappyAnding/TextLiteral.swift | 7 +++++++ .../Views/FeatureViews/UpdateInfoView.swift | 18 +++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/HappyAnding/HappyAnding/TextLiteral.swift b/HappyAnding/HappyAnding/TextLiteral.swift index 9319b75e..410b6725 100644 --- a/HappyAnding/HappyAnding/TextLiteral.swift +++ b/HappyAnding/HappyAnding/TextLiteral.swift @@ -259,8 +259,15 @@ enum TextLiteral { //MARK: -UpdateInfoView static let updateInfoViewTitle: String = "ShortcutsZip 업데이트 소식" static let updateInfoViewVersion: String = "2023.10.23 | 1.3.3" + static let updateInfoViewTypeUpdate: String = "기능 업데이트" static let updateInfoViewFooterTitle: String = "ShortcutsZip에게\n전하고 싶은 말이 있나요?" static let updateInfoViewComment: String = "의견 남기러 가기" + static let featTitleFirst: String = "더욱 쉬워진 단축어 작성 과정" + static let featTitleSecond: String = "간편하게 외부 링크 살펴보기" + static let featTitleThird: String = "단축어와 댓글 작성 날짜 확인" + static let featContentFirst: String = "이제는 단축어 작성 과정에서 제목을 직접 입력하지 않아도 괜찮아요. 단축어 링크만 붙여넣으면 ShortcutsZip이 자동으로 제목을 채워준답니다. 이 기능은 단축어 앱의 공유 시트에서 바로 작성할 때도 만나볼 수 있어요." + static let featContentSecond: String = "다른 유저에게 단축어에 대해 더 자세한 정보를 알려 주고 싶을 때가 있지 않나요? 단축어 설명이나 댓글에 URL을 입력하면 ShortcutsZip이 자동으로 인식해 해당 웹사이트로 바로 이동할 수 있는 링크를 제공해요." + static let featContentThird: String = "이제 단축어를 업데이트하지 않아도 언제 업로드 된 단축어인지 알 수 있어요. 댓글에도 날짜가 표시되어서 내 단축어에 달린 최근 댓글에 빠르게 피드백 할 수 있답니다." //MARK: -ShortcutsZipFormView static let formViewTitle: String = "ShortcutsZip에게\n전하고 싶은 말을 남겨 주세요" diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift index 724be351..c5c3d2dc 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift @@ -21,20 +21,20 @@ struct UpdateInfoView: View { header() //TODO: Model 만들어서 Foreach로 돌리기. 다음 업데이트 - aboutFeatureCell(type: "기능 업데이트", - title: "더욱 쉬워진 단축어 작성 과정", + aboutFeatureCell(type: TextLiteral.updateInfoViewTypeUpdate, + title: TextLiteral.featTitleFirst, image: "easierShortcutWrite", - description: "이제는 단축어 작성 과정에서 제목을 직접 입력하지 않아도 괜찮아요. 단축어 링크만 붙여넣으면 ShortcutsZip이 자동으로 제목을 채워준답니다. 이 기능은 단축어 앱의 공유 시트에서 바로 작성할 때도 만나볼 수 있어요.") + description: TextLiteral.featContentFirst) - aboutFeatureCell(type: "기능 업데이트", - title: "간편하게 외부 링크 살펴보기", + aboutFeatureCell(type: TextLiteral.updateInfoViewTypeUpdate, + title: TextLiteral.featTitleSecond, image: "easierExternalURL", - description: "다른 유저에게 단축어에 대해 더 자세한 정보를 알려 주고 싶을 때가 있지 않나요? 단축어 설명이나 댓글에 URL을 입력하면 ShortcutsZip이 자동으로 인식해 해당 웹사이트로 바로 이동할 수 있는 링크를 제공해요.") + description: TextLiteral.featContentSecond) - aboutFeatureCell(type: "기능 업데이트", - title: "단축어와 댓글 작성 날짜 확인", + aboutFeatureCell(type: TextLiteral.updateInfoViewTypeUpdate, + title: TextLiteral.featTitleThird, image: nil, - description: "이제 단축어를 업데이트하지 않아도 언제 업로드 된 단축어인지 알 수 있어요. 댓글에도 날짜가 표시되어서 내 단축어에 달린 최근 댓글에 빠르게 피드백 할 수 있답니다.") + description: TextLiteral.featContentThird) VStack(alignment: .center, spacing: 20) { Text(TextLiteral.updateInfoViewFooterTitle) From ad719cd93911461167129e73442383c077b8b537 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Sun, 29 Oct 2023 23:32:30 +0900 Subject: [PATCH 08/11] [Feat] #501 - Work ShortcutsZipFormView upload feature - Create Model / ViewModel - Connect to Firebase --- .../HappyAnding.xcodeproj/project.pbxproj | 8 +++++ HappyAnding/HappyAnding/Model/Form.swift | 35 +++++++++++++++++++ .../HappyAnding/ViewModel/FormViewModel.swift | 23 ++++++++++++ .../ViewModel/ShortcutsZipViewModel.swift | 2 ++ .../FeatureViews/ShortcutsZipFormView.swift | 10 ++---- .../Views/FeatureViews/UpdateInfoView.swift | 2 +- 6 files changed, 71 insertions(+), 9 deletions(-) create mode 100644 HappyAnding/HappyAnding/Model/Form.swift create mode 100644 HappyAnding/HappyAnding/ViewModel/FormViewModel.swift diff --git a/HappyAnding/HappyAnding.xcodeproj/project.pbxproj b/HappyAnding/HappyAnding.xcodeproj/project.pbxproj index 8c08d967..6893c5a4 100644 --- a/HappyAnding/HappyAnding.xcodeproj/project.pbxproj +++ b/HappyAnding/HappyAnding.xcodeproj/project.pbxproj @@ -86,6 +86,8 @@ A31F1844292A637300AF4A82 /* Date+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9CAEF822914855900224B0A /* Date+String.swift */; }; A31F1846292A638700AF4A82 /* (null) in Sources */ = {isa = PBXBuildFile; }; A31F1848292A64D700AF4A82 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 87E99C7128F94EA8009B691F /* Assets.xcassets */; }; + A323D3CA2AEE870700DDA716 /* Form.swift in Sources */ = {isa = PBXBuildFile; fileRef = A323D3C92AEE870700DDA716 /* Form.swift */; }; + A323D3CC2AEEA10F00DDA716 /* FormViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A323D3CB2AEEA10F00DDA716 /* FormViewModel.swift */; }; A33F74AE2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33F74AD2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift */; }; A3439AF529395A100043E273 /* UserAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87E606B729114FB200C3DA13 /* UserAuth.swift */; }; A3439AF629395A3A0043E273 /* CustomTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87276C372933F6AB00C92F4C /* CustomTextEditor.swift */; }; @@ -270,6 +272,8 @@ A0DD085629276608008177BB /* URL+DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+DeepLink.swift"; sourceTree = ""; }; A0F822AB2910B8F100AF4448 /* ShortcutsZipViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutsZipViewModel.swift; sourceTree = ""; }; A0F822B629164D2300AF4448 /* ListCategoryShortcutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListCategoryShortcutView.swift; sourceTree = ""; }; + A323D3C92AEE870700DDA716 /* Form.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Form.swift; sourceTree = ""; }; + A323D3CB2AEEA10F00DDA716 /* FormViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormViewModel.swift; sourceTree = ""; }; A33F74AD2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckBoxShortcutCell.swift; sourceTree = ""; }; A3439AFA2939B0E80043E273 /* UserDefaults+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Extension.swift"; sourceTree = ""; }; A34BF82729AF3D55009BC946 /* AnnouncementCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementCell.swift; sourceTree = ""; }; @@ -650,6 +654,7 @@ F976E82B29368E0D0088BBA1 /* Version.swift */, F91F09DC29AE012600E04FA0 /* ShortcutGrade.swift */, 872B5D3C2A2E0FF9008DCC57 /* CurationType.swift */, + A323D3C92AEE870700DDA716 /* Form.swift */, ); path = Model; sourceTree = ""; @@ -677,6 +682,7 @@ F9AC2BB52935201C00165820 /* CheckUpdateVersion.swift */, F9AFF6E22A59153B00FFFFAD /* WriteShortcutViewModel.swift */, F92766542A61A032009C4EC2 /* WriteShortcutModalViewModel.swift */, + A323D3CB2AEEA10F00DDA716 /* FormViewModel.swift */, ); path = ViewModel; sourceTree = ""; @@ -936,6 +942,7 @@ A3FF0183291648A300384211 /* MailView.swift in Sources */, 4D061BBA2A475EE800F76835 /* ExploreShortcutViewModel.swift in Sources */, A0F822AC2910B8F100AF4448 /* ShortcutsZipViewModel.swift in Sources */, + A323D3CC2AEEA10F00DDA716 /* FormViewModel.swift in Sources */, 87276C382933F6AB00C92F4C /* CustomTextEditor.swift in Sources */, A34BF82D29AFC34F009BC946 /* AboutShortcutGradeView.swift in Sources */, 4D93D06F2A5956E60042CBA8 /* ShowProfileViewModel.swift in Sources */, @@ -958,6 +965,7 @@ F9AFF6E32A59153B00FFFFAD /* WriteShortcutViewModel.swift in Sources */, 8786B2E629A7F987000B46A1 /* String+Date.swift in Sources */, F96D45B72980301F000C2441 /* SubtitleTextView.swift in Sources */, + A323D3CA2AEE870700DDA716 /* Form.swift in Sources */, 4DF15D752A4ECE1F0014F854 /* ListCategoryShortcutViewModel.swift in Sources */, 87E99CDB29042CCA009B691F /* Category.swift in Sources */, 876B4F6F299E3D91009672D9 /* NavigationRouter.swift in Sources */, diff --git a/HappyAnding/HappyAnding/Model/Form.swift b/HappyAnding/HappyAnding/Model/Form.swift new file mode 100644 index 00000000..d10cd2c9 --- /dev/null +++ b/HappyAnding/HappyAnding/Model/Form.swift @@ -0,0 +1,35 @@ +// +// Form.swift +// HappyAnding +// +// Created by HanGyeongjun on 10/29/23. +// + +import Foundation + +struct Form: Identifiable, Codable, Hashable { + + var id = UUID().uuidString + var userInfo: String + var dateTime = Date().getDate() + var formContent: String + + var dictionary: [String: Any] { + let data = (try? JSONEncoder().encode(self)) ?? Data() + return (try? JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String: Any]) ?? [:] + } + + init(userInfo: String, formContent: String) { + self.id = UUID().uuidString + self.userInfo = userInfo + self.dateTime = Date().getDate() + self.formContent = formContent + } + + init() { + self.id = UUID().uuidString + self.userInfo = "" + self.dateTime = Date().getDate() + self.formContent = "" + } +} diff --git a/HappyAnding/HappyAnding/ViewModel/FormViewModel.swift b/HappyAnding/HappyAnding/ViewModel/FormViewModel.swift new file mode 100644 index 00000000..898ac22c --- /dev/null +++ b/HappyAnding/HappyAnding/ViewModel/FormViewModel.swift @@ -0,0 +1,23 @@ +// +// FormViewModel.swift +// HappyAnding +// +// Created by HanGyeongjun on 10/29/23. +// + +import Foundation + +final class FormViewModel: ObservableObject { + + var shortcutsZipViewModel = ShortcutsZipViewModel.share + + @Published var form = Form(userInfo: "", + formContent: "") + + // 유저 설문을 Firebase에 업로드하는 함수 + func uploadUserForm(formContent: String) { + form.userInfo = shortcutsZipViewModel.userInfo?.nickname ?? "nil" + form.formContent = formContent + shortcutsZipViewModel.setData(model: form) + } +} diff --git a/HappyAnding/HappyAnding/ViewModel/ShortcutsZipViewModel.swift b/HappyAnding/HappyAnding/ViewModel/ShortcutsZipViewModel.swift index 9ca66768..87416f9e 100644 --- a/HappyAnding/HappyAnding/ViewModel/ShortcutsZipViewModel.swift +++ b/HappyAnding/HappyAnding/ViewModel/ShortcutsZipViewModel.swift @@ -426,6 +426,8 @@ extension ShortcutsZipViewModel { db.collection("User").document((model as! User).id).setData((model as! User).dictionary) case _ as Comments: db.collection("Comment").document((model as! Comments).id).setData((model as! Comments).dictionary) + case _ as Form: + db.collection("Form").document((model as! Form).id).setData((model as! Form).dictionary) default: print("this is not a model.") } diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift index ae20cd26..20dd26d0 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift @@ -13,7 +13,7 @@ struct ShortcutsZipFormView: View { case text } - @EnvironmentObject var shortcutsZipViewModel: ShortcutsZipViewModel + @StateObject var viewModel: FormViewModel @FocusState var focusState: Bool @State var formText: String = "" @@ -72,9 +72,7 @@ struct ShortcutsZipFormView: View { } Button { - //api 연결 - print(shortcutsZipViewModel.userInfo?.nickname ?? "") - print(Date.now) + viewModel.uploadUserForm(formContent: formText) formText = "" isFormSendSuccess = true } label: { @@ -95,7 +93,3 @@ struct ShortcutsZipFormView: View { } } } - -#Preview { - ShortcutsZipFormView() -} diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift index c5c3d2dc..7fcd75be 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift @@ -67,7 +67,7 @@ struct UpdateInfoView: View { .navigationBarTitleDisplayMode(.inline) .background(Color.shortcutsZipBackground) .sheet(isPresented: self.$isShowFormView) { - ShortcutsZipFormView() + ShortcutsZipFormView(viewModel: FormViewModel()) .presentationDetents([.large]) .presentationDragIndicator(.visible) } From 9ee78770ad2b473f5cc0843db50da551afaa5009 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Mon, 30 Oct 2023 03:59:46 +0900 Subject: [PATCH 09/11] [Bug] #501 - Fix AppStorage bug - Temporary fix. Requires a fundamental workaround --- .../Views/Components/AnnouncementCell.swift | 106 +++++++++--------- .../ExploreShortcutView.swift | 19 ++-- 2 files changed, 61 insertions(+), 64 deletions(-) diff --git a/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift b/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift index e18486bc..42d91fb3 100644 --- a/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift +++ b/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift @@ -19,66 +19,68 @@ struct AnnouncementCell: View { var isCanDismiss: Bool var body: some View { - ZStack { - HStack(spacing: 12) { - - if let icon { - Image(icon) - .resizable() - .aspectRatio(contentMode: .fill) - .frame(width: 60, height: 60) - } - - VStack(alignment: .leading, spacing: 4) { - if let tagName { - Text(tagName) - .shortcutsZipFootnote() - .fontWeight(.bold) - .foregroundStyle(Color.tagText) - .frame(height: 20) - .padding(.horizontal, 8) - .padding(.vertical, 2) - .background( - Capsule() - .fill( Color.tagBackground ) - .overlay( - Capsule() - .strokeBorder(Color.shortcutsZipPrimary, lineWidth: 1)) - ) - } + if (isAnnouncementShow) { + ZStack { + HStack(spacing: 12) { - Text(title) - .shortcutsZipBody2() - .fontWeight(.semibold) - .foregroundStyle(Color.gray5) - .lineLimit(1) + if let icon { + Image(icon) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: 60, height: 60) + } - if let description { - Text(description.lineBreaking) - .shortcutsZipFootnote() + VStack(alignment: .leading, spacing: 4) { + if let tagName { + Text(tagName) + .shortcutsZipFootnote() + .fontWeight(.bold) + .foregroundStyle(Color.tagText) + .frame(height: 20) + .padding(.horizontal, 8) + .padding(.vertical, 2) + .background( + Capsule() + .fill( Color.tagBackground ) + .overlay( + Capsule() + .strokeBorder(Color.shortcutsZipPrimary, lineWidth: 1)) + ) + } + + Text(title) + .shortcutsZipBody2() .fontWeight(.semibold) - .foregroundStyle(Color.gray3) - .multilineTextAlignment(.leading) - .lineLimit(2) + .foregroundStyle(Color.gray5) + .lineLimit(1) + + if let description { + Text(description.lineBreaking) + .shortcutsZipFootnote() + .fontWeight(.semibold) + .foregroundStyle(Color.gray3) + .multilineTextAlignment(.leading) + .lineLimit(2) + } } - } - - Spacer() - if isCanDismiss { - Button { - self.isAnnouncementShow = false - } label: { - Image(systemName: "xmark") - .shortcutsZipBody1() - .foregroundStyle(Color.gray4) - .frame(width: 24, height: 24) + + Spacer() + if isCanDismiss { + Button { + isAnnouncementShow = false + } label: { + Image(systemName: "xmark") + .shortcutsZipBody1() + .foregroundStyle(Color.gray4) + .frame(width: 24, height: 24) + } } } + .padding(.all, 16) + .background( background ) } - .padding(.all, 16) - .background( background ) + .padding(.horizontal, 16) } - .padding(.horizontal, 16) } var background: some View { diff --git a/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift b/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift index 9d7c0fa2..b6104ef0 100644 --- a/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift +++ b/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift @@ -21,18 +21,13 @@ struct ExploreShortcutView: View { VStack(spacing: 32) { if isUpdateAnnnouncementShow { - Button { - isUpdateAnnnouncementShow = false -// viewModel.announcementCellDidTap() - } label: { - AnnouncementCell(isAnnouncementShow: $isUpdateAnnnouncementShow, - icon: "updateAppIcon", - tagName: TextLiteral.appUpdateTag, - title: TextLiteral.updateCellDescription, - isCanDismiss: true) - .navigationLinkRouter(data: NavigationUpdateInfo.first) - .id(000) - } + AnnouncementCell(isAnnouncementShow: $isUpdateAnnnouncementShow, + icon: "updateAppIcon", + tagName: TextLiteral.appUpdateTag, + title: TextLiteral.updateCellDescription, + isCanDismiss: true) + .navigationLinkRouter(data: NavigationUpdateInfo.first) + .id(000) } sectionView(with: .recent) From 8699340820abc16eda632ada5c08b1ec4bc2bb70 Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Mon, 30 Oct 2023 04:09:27 +0900 Subject: [PATCH 10/11] [Bug] #501 - Add target Membership --- HappyAnding/HappyAnding.xcodeproj/project.pbxproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HappyAnding/HappyAnding.xcodeproj/project.pbxproj b/HappyAnding/HappyAnding.xcodeproj/project.pbxproj index 073c7f89..b2903e7d 100644 --- a/HappyAnding/HappyAnding.xcodeproj/project.pbxproj +++ b/HappyAnding/HappyAnding.xcodeproj/project.pbxproj @@ -88,6 +88,7 @@ A31F1848292A64D700AF4A82 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 87E99C7128F94EA8009B691F /* Assets.xcassets */; }; A323D3CA2AEE870700DDA716 /* Form.swift in Sources */ = {isa = PBXBuildFile; fileRef = A323D3C92AEE870700DDA716 /* Form.swift */; }; A323D3CC2AEEA10F00DDA716 /* FormViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A323D3CB2AEEA10F00DDA716 /* FormViewModel.swift */; }; + A323D3D02AEEE4B400DDA716 /* HapticManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A39504862AD46B9B0019895E /* HapticManager.swift */; }; A33F74AE2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33F74AD2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift */; }; A3439AF529395A100043E273 /* UserAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87E606B729114FB200C3DA13 /* UserAuth.swift */; }; A3439AF629395A3A0043E273 /* CustomTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87276C372933F6AB00C92F4C /* CustomTextEditor.swift */; }; @@ -1003,7 +1004,6 @@ 87E99CBB28FFF298009B691F /* IconModalView.swift in Sources */, 87E99C7028F94EA6009B691F /* ShortcutTabView.swift in Sources */, F99569182901DC4D0060AAEF /* UIFont+Extension.swift in Sources */, - A39504872AD46B9B0019895E /* HapticManager.swift in Sources */, F91A72C32999160E00CA135A /* Alerter.swift in Sources */, 87E99CAD28FFF261009B691F /* ReadShortcutView.swift in Sources */, A33F74AE2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift in Sources */, @@ -1037,6 +1037,7 @@ 8788374A2920D549009B3F54 /* Binding+Extension.swift in Sources */, 87E99CCB290145C4009B691F /* UserCurationCell.swift in Sources */, F9724BBF292755E400860F8A /* Comment.swift in Sources */, + A323D3D02AEEE4B400DDA716 /* HapticManager.swift in Sources */, 87E99CA328FFF22E009B691F /* ExploreCurationView.swift in Sources */, A0F822B729164D2300AF4448 /* ListCategoryShortcutView.swift in Sources */, 87B47F3B2A3DC2740009E75F /* ReadCurationViewModel.swift in Sources */, From 2996221d33504eac40bcd9b2b7272e5e634a2ece Mon Sep 17 00:00:00 2001 From: HanGyeongjun <030212hgjun@gmail.com> Date: Tue, 31 Oct 2023 23:11:19 +0900 Subject: [PATCH 11/11] [Style] #501 - Modify code style based on review --- .../HappyAnding.xcodeproj/project.pbxproj | 32 +++++++++---------- .../Extensions/View/View+Navigation.swift | 4 +-- .../{Form.swift => SuggestionForm.swift} | 4 +-- HappyAnding/HappyAnding/TextLiteral.swift | 10 +++--- .../HappyAnding/ViewModel/FormViewModel.swift | 23 ------------- .../ViewModel/ShortcutsZipViewModel.swift | 4 +-- .../ViewModel/SuggestionFormViewModel.swift | 22 +++++++++++++ .../Views/Components/AnnouncementCell.swift | 5 +-- .../ExploreShortcutView.swift | 2 +- ...teInfoView.swift => AboutUpdateView.swift} | 8 ++--- ...ormView.swift => SuggestionFormView.swift} | 14 ++++---- 11 files changed, 64 insertions(+), 64 deletions(-) rename HappyAnding/HappyAnding/Model/{Form.swift => SuggestionForm.swift} (90%) delete mode 100644 HappyAnding/HappyAnding/ViewModel/FormViewModel.swift create mode 100644 HappyAnding/HappyAnding/ViewModel/SuggestionFormViewModel.swift rename HappyAnding/HappyAnding/Views/FeatureViews/{UpdateInfoView.swift => AboutUpdateView.swift} (96%) rename HappyAnding/HappyAnding/Views/FeatureViews/{ShortcutsZipFormView.swift => SuggestionFormView.swift} (87%) diff --git a/HappyAnding/HappyAnding.xcodeproj/project.pbxproj b/HappyAnding/HappyAnding.xcodeproj/project.pbxproj index b2903e7d..9f88b730 100644 --- a/HappyAnding/HappyAnding.xcodeproj/project.pbxproj +++ b/HappyAnding/HappyAnding.xcodeproj/project.pbxproj @@ -86,8 +86,8 @@ A31F1844292A637300AF4A82 /* Date+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9CAEF822914855900224B0A /* Date+String.swift */; }; A31F1846292A638700AF4A82 /* (null) in Sources */ = {isa = PBXBuildFile; }; A31F1848292A64D700AF4A82 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 87E99C7128F94EA8009B691F /* Assets.xcassets */; }; - A323D3CA2AEE870700DDA716 /* Form.swift in Sources */ = {isa = PBXBuildFile; fileRef = A323D3C92AEE870700DDA716 /* Form.swift */; }; - A323D3CC2AEEA10F00DDA716 /* FormViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A323D3CB2AEEA10F00DDA716 /* FormViewModel.swift */; }; + A323D3CA2AEE870700DDA716 /* SuggestionForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = A323D3C92AEE870700DDA716 /* SuggestionForm.swift */; }; + A323D3CC2AEEA10F00DDA716 /* SuggestionFormViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A323D3CB2AEEA10F00DDA716 /* SuggestionFormViewModel.swift */; }; A323D3D02AEEE4B400DDA716 /* HapticManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A39504862AD46B9B0019895E /* HapticManager.swift */; }; A33F74AE2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33F74AD2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift */; }; A3439AF529395A100043E273 /* UserAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87E606B729114FB200C3DA13 /* UserAuth.swift */; }; @@ -102,10 +102,10 @@ A365209B29B1F26C00E9B07A /* Image+View.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9AC2BB92935D34C00165820 /* Image+View.swift */; }; A3766B232904330300708F83 /* ReadCurationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3766B222904330300708F83 /* ReadCurationView.swift */; }; A38115BA292B447D0043E8B8 /* ShortcutCardCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38115B9292B447D0043E8B8 /* ShortcutCardCell.swift */; }; - A38F3B1F2AE62E8D0036FCAC /* ShortcutsZipFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38F3B1E2AE62E8D0036FCAC /* ShortcutsZipFormView.swift */; }; + A38F3B1F2AE62E8D0036FCAC /* SuggestionFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38F3B1E2AE62E8D0036FCAC /* SuggestionFormView.swift */; }; A39504882AD46B9B0019895E /* HapticManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A39504862AD46B9B0019895E /* HapticManager.swift */; }; A3A6AD1E292763E2004C49DC /* ShareExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = A3A6AD14292763E2004C49DC /* ShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - A3C404D62A23D0E800C3BA75 /* UpdateInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C404D52A23D0E800C3BA75 /* UpdateInfoView.swift */; }; + A3C404D62A23D0E800C3BA75 /* AboutUpdateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C404D52A23D0E800C3BA75 /* AboutUpdateView.swift */; }; A3C5576C292BE084003907DC /* ShareExtensionWriteShortcutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C5576B292BE084003907DC /* ShareExtensionWriteShortcutView.swift */; }; A3FC4747292A61550058BF26 /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = A3FC4746292A61550058BF26 /* FirebaseAnalytics */; }; A3FC4749292A61550058BF26 /* FirebaseAuth in Frameworks */ = {isa = PBXBuildFile; productRef = A3FC4748292A61550058BF26 /* FirebaseAuth */; }; @@ -274,8 +274,8 @@ A0DD085629276608008177BB /* URL+DeepLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+DeepLink.swift"; sourceTree = ""; }; A0F822AB2910B8F100AF4448 /* ShortcutsZipViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutsZipViewModel.swift; sourceTree = ""; }; A0F822B629164D2300AF4448 /* ListCategoryShortcutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListCategoryShortcutView.swift; sourceTree = ""; }; - A323D3C92AEE870700DDA716 /* Form.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Form.swift; sourceTree = ""; }; - A323D3CB2AEEA10F00DDA716 /* FormViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FormViewModel.swift; sourceTree = ""; }; + A323D3C92AEE870700DDA716 /* SuggestionForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuggestionForm.swift; sourceTree = ""; }; + A323D3CB2AEEA10F00DDA716 /* SuggestionFormViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuggestionFormViewModel.swift; sourceTree = ""; }; A33F74AD2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckBoxShortcutCell.swift; sourceTree = ""; }; A3439AFA2939B0E80043E273 /* UserDefaults+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Extension.swift"; sourceTree = ""; }; A34BF82729AF3D55009BC946 /* AnnouncementCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementCell.swift; sourceTree = ""; }; @@ -286,12 +286,12 @@ A35DB3382927E9630011A28B /* CustomShareNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomShareNavigationController.swift; sourceTree = ""; }; A3766B222904330300708F83 /* ReadCurationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReadCurationView.swift; sourceTree = ""; }; A38115B9292B447D0043E8B8 /* ShortcutCardCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutCardCell.swift; sourceTree = ""; }; - A38F3B1E2AE62E8D0036FCAC /* ShortcutsZipFormView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutsZipFormView.swift; sourceTree = ""; }; + A38F3B1E2AE62E8D0036FCAC /* SuggestionFormView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuggestionFormView.swift; sourceTree = ""; }; A39504862AD46B9B0019895E /* HapticManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HapticManager.swift; sourceTree = ""; }; A3A6AD14292763E2004C49DC /* ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; A3A6AD1B292763E2004C49DC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; A3A6AD232927BA06004C49DC /* ShareExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ShareExtension.entitlements; sourceTree = ""; }; - A3C404D52A23D0E800C3BA75 /* UpdateInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateInfoView.swift; sourceTree = ""; }; + A3C404D52A23D0E800C3BA75 /* AboutUpdateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutUpdateView.swift; sourceTree = ""; }; A3C5576B292BE084003907DC /* ShareExtensionWriteShortcutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareExtensionWriteShortcutView.swift; sourceTree = ""; }; A3FF0182291648A300384211 /* MailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MailView.swift; sourceTree = ""; }; A3FF01852918552E00384211 /* AboutTeamView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutTeamView.swift; sourceTree = ""; }; @@ -658,7 +658,7 @@ F976E82B29368E0D0088BBA1 /* Version.swift */, F91F09DC29AE012600E04FA0 /* ShortcutGrade.swift */, 872B5D3C2A2E0FF9008DCC57 /* CurationType.swift */, - A323D3C92AEE870700DDA716 /* Form.swift */, + A323D3C92AEE870700DDA716 /* SuggestionForm.swift */, ); path = Model; sourceTree = ""; @@ -686,7 +686,7 @@ F9AC2BB52935201C00165820 /* CheckUpdateVersion.swift */, F9AFF6E22A59153B00FFFFAD /* WriteShortcutViewModel.swift */, F92766542A61A032009C4EC2 /* WriteShortcutModalViewModel.swift */, - A323D3CB2AEEA10F00DDA716 /* FormViewModel.swift */, + A323D3CB2AEEA10F00DDA716 /* SuggestionFormViewModel.swift */, ); path = ViewModel; sourceTree = ""; @@ -703,8 +703,8 @@ isa = PBXGroup; children = ( A34BF82C29AFC34F009BC946 /* AboutShortcutGradeView.swift */, - A3C404D52A23D0E800C3BA75 /* UpdateInfoView.swift */, - A38F3B1E2AE62E8D0036FCAC /* ShortcutsZipFormView.swift */, + A3C404D52A23D0E800C3BA75 /* AboutUpdateView.swift */, + A38F3B1E2AE62E8D0036FCAC /* SuggestionFormView.swift */, ); path = FeatureViews; sourceTree = ""; @@ -954,7 +954,7 @@ A3FF0183291648A300384211 /* MailView.swift in Sources */, 4D061BBA2A475EE800F76835 /* ExploreShortcutViewModel.swift in Sources */, A0F822AC2910B8F100AF4448 /* ShortcutsZipViewModel.swift in Sources */, - A323D3CC2AEEA10F00DDA716 /* FormViewModel.swift in Sources */, + A323D3CC2AEEA10F00DDA716 /* SuggestionFormViewModel.swift in Sources */, 87276C382933F6AB00C92F4C /* CustomTextEditor.swift in Sources */, A34BF82D29AFC34F009BC946 /* AboutShortcutGradeView.swift in Sources */, 4D93D06F2A5956E60042CBA8 /* ShowProfileViewModel.swift in Sources */, @@ -977,7 +977,7 @@ F9AFF6E32A59153B00FFFFAD /* WriteShortcutViewModel.swift in Sources */, 8786B2E629A7F987000B46A1 /* String+Date.swift in Sources */, F96D45B72980301F000C2441 /* SubtitleTextView.swift in Sources */, - A323D3CA2AEE870700DDA716 /* Form.swift in Sources */, + A323D3CA2AEE870700DDA716 /* SuggestionForm.swift in Sources */, 4DF15D752A4ECE1F0014F854 /* ListCategoryShortcutViewModel.swift in Sources */, 87E99CDB29042CCA009B691F /* Category.swift in Sources */, 876B4F6F299E3D91009672D9 /* NavigationRouter.swift in Sources */, @@ -990,7 +990,7 @@ 87E606B829114FB200C3DA13 /* UserAuth.swift in Sources */, 8788E1A02A48408F007C3852 /* ExploreCurationViewModel.swift in Sources */, 8786B33E29ABA5A9000B46A1 /* View+Shape.swift in Sources */, - A3C404D62A23D0E800C3BA75 /* UpdateInfoView.swift in Sources */, + A3C404D62A23D0E800C3BA75 /* AboutUpdateView.swift in Sources */, F91A72C1299915C500CA135A /* MoreCaptionTextView.swift in Sources */, 4DAD635E292AB61700ABF8C1 /* UpdateShortcutView.swift in Sources */, 87E99C9F28FFF21B009B691F /* SettingView.swift in Sources */, @@ -1008,7 +1008,7 @@ 87E99CAD28FFF261009B691F /* ReadShortcutView.swift in Sources */, A33F74AE2908D8C800B8D0D0 /* CheckBoxShortcutCell.swift in Sources */, 87E606B22910649B00C3DA13 /* SignInWithAppleView.swift in Sources */, - A38F3B1F2AE62E8D0036FCAC /* ShortcutsZipFormView.swift in Sources */, + A38F3B1F2AE62E8D0036FCAC /* SuggestionFormView.swift in Sources */, F91F09DF29AE0B5E00E04FA0 /* GradeAlertView.swift in Sources */, 4D061BB82A47531800F76835 /* ExploreShortcutView.swift in Sources */, 87E99CEC29080C30009B691F /* Curation.swift in Sources */, diff --git a/HappyAnding/HappyAnding/Extensions/View/View+Navigation.swift b/HappyAnding/HappyAnding/Extensions/View/View+Navigation.swift index 0fd9f56e..80281064 100644 --- a/HappyAnding/HappyAnding/Extensions/View/View+Navigation.swift +++ b/HappyAnding/HappyAnding/Extensions/View/View+Navigation.swift @@ -102,7 +102,7 @@ extension View { case is CheckVersionView: CheckVersionView() case is NavigationUpdateInfo: - UpdateInfoView() + AboutUpdateView() default: EmptyView() } @@ -154,7 +154,7 @@ struct NavigationViewModifier: ViewModifier { CheckVersionView() } .navigationDestination(for: NavigationUpdateInfo.self) { _ in - UpdateInfoView() + AboutUpdateView() } } } diff --git a/HappyAnding/HappyAnding/Model/Form.swift b/HappyAnding/HappyAnding/Model/SuggestionForm.swift similarity index 90% rename from HappyAnding/HappyAnding/Model/Form.swift rename to HappyAnding/HappyAnding/Model/SuggestionForm.swift index d10cd2c9..93801b63 100644 --- a/HappyAnding/HappyAnding/Model/Form.swift +++ b/HappyAnding/HappyAnding/Model/SuggestionForm.swift @@ -1,5 +1,5 @@ // -// Form.swift +// SuggestionForm.swift // HappyAnding // // Created by HanGyeongjun on 10/29/23. @@ -7,7 +7,7 @@ import Foundation -struct Form: Identifiable, Codable, Hashable { +struct SuggestionForm: Identifiable, Codable, Hashable { var id = UUID().uuidString var userInfo: String diff --git a/HappyAnding/HappyAnding/TextLiteral.swift b/HappyAnding/HappyAnding/TextLiteral.swift index 410b6725..4c16ad38 100644 --- a/HappyAnding/HappyAnding/TextLiteral.swift +++ b/HappyAnding/HappyAnding/TextLiteral.swift @@ -269,9 +269,9 @@ enum TextLiteral { static let featContentSecond: String = "다른 유저에게 단축어에 대해 더 자세한 정보를 알려 주고 싶을 때가 있지 않나요? 단축어 설명이나 댓글에 URL을 입력하면 ShortcutsZip이 자동으로 인식해 해당 웹사이트로 바로 이동할 수 있는 링크를 제공해요." static let featContentThird: String = "이제 단축어를 업데이트하지 않아도 언제 업로드 된 단축어인지 알 수 있어요. 댓글에도 날짜가 표시되어서 내 단축어에 달린 최근 댓글에 빠르게 피드백 할 수 있답니다." - //MARK: -ShortcutsZipFormView - static let formViewTitle: String = "ShortcutsZip에게\n전하고 싶은 말을 남겨 주세요" - static let formViewSubTitle: String = "기능 제안, 칭찬 등 무엇이든 작성해주세요" - static let formViewSuccessMessage: String = "소중한 의견을 잘 전달했어요" - static let formViewTextPlaceholder: String = "답변 입력하기" + //MARK: -SuggestionFormView + static let SuggestionFormViewTitle: String = "ShortcutsZip에게\n전하고 싶은 말을 남겨 주세요" + static let SuggestionFormViewSubTitle: String = "기능 제안, 칭찬 등 무엇이든 작성해주세요." + static let SuggestionFormViewSuccessMessage: String = "소중한 의견을 잘 전달했어요" + static let SuggestionFormViewTextPlaceholder: String = "답변 입력하기" } diff --git a/HappyAnding/HappyAnding/ViewModel/FormViewModel.swift b/HappyAnding/HappyAnding/ViewModel/FormViewModel.swift deleted file mode 100644 index 898ac22c..00000000 --- a/HappyAnding/HappyAnding/ViewModel/FormViewModel.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// FormViewModel.swift -// HappyAnding -// -// Created by HanGyeongjun on 10/29/23. -// - -import Foundation - -final class FormViewModel: ObservableObject { - - var shortcutsZipViewModel = ShortcutsZipViewModel.share - - @Published var form = Form(userInfo: "", - formContent: "") - - // 유저 설문을 Firebase에 업로드하는 함수 - func uploadUserForm(formContent: String) { - form.userInfo = shortcutsZipViewModel.userInfo?.nickname ?? "nil" - form.formContent = formContent - shortcutsZipViewModel.setData(model: form) - } -} diff --git a/HappyAnding/HappyAnding/ViewModel/ShortcutsZipViewModel.swift b/HappyAnding/HappyAnding/ViewModel/ShortcutsZipViewModel.swift index 87416f9e..4065cb6c 100644 --- a/HappyAnding/HappyAnding/ViewModel/ShortcutsZipViewModel.swift +++ b/HappyAnding/HappyAnding/ViewModel/ShortcutsZipViewModel.swift @@ -426,8 +426,8 @@ extension ShortcutsZipViewModel { db.collection("User").document((model as! User).id).setData((model as! User).dictionary) case _ as Comments: db.collection("Comment").document((model as! Comments).id).setData((model as! Comments).dictionary) - case _ as Form: - db.collection("Form").document((model as! Form).id).setData((model as! Form).dictionary) + case _ as SuggestionForm: + db.collection("SuggestionForm").document((model as! SuggestionForm).id).setData((model as! SuggestionForm).dictionary) default: print("this is not a model.") } diff --git a/HappyAnding/HappyAnding/ViewModel/SuggestionFormViewModel.swift b/HappyAnding/HappyAnding/ViewModel/SuggestionFormViewModel.swift new file mode 100644 index 00000000..8d8f15c1 --- /dev/null +++ b/HappyAnding/HappyAnding/ViewModel/SuggestionFormViewModel.swift @@ -0,0 +1,22 @@ +// +// SuggestionFormViewModel.swift +// HappyAnding +// +// Created by HanGyeongjun on 10/29/23. +// + +import Foundation + +final class SuggestionFormViewModel: ObservableObject { + + private let shortcutsZipViewModel = ShortcutsZipViewModel.share + + @Published var suggstionForm = SuggestionForm() + + // 유저 설문을 Firebase에 업로드하는 함수 + func uploadUserForm(formContent: String) { + suggstionForm.userInfo = shortcutsZipViewModel.userInfo?.nickname ?? "nil" + suggstionForm.formContent = formContent + shortcutsZipViewModel.setData(model: suggstionForm) + } +} diff --git a/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift b/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift index 42d91fb3..ce0ee930 100644 --- a/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift +++ b/HappyAnding/HappyAnding/Views/Components/AnnouncementCell.swift @@ -13,10 +13,11 @@ struct AnnouncementCell: View { var icon: String? var tagName: String? + //TODO: - 태그 컬러 변경 가능하도록 수정 // var tagColor: UIColor? var title: String var description: String? - var isCanDismiss: Bool + var isDismissible: Bool var body: some View { if (isAnnouncementShow) { @@ -65,7 +66,7 @@ struct AnnouncementCell: View { } Spacer() - if isCanDismiss { + if isDismissible { Button { isAnnouncementShow = false } label: { diff --git a/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift b/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift index b6104ef0..d4e693c2 100644 --- a/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift +++ b/HappyAnding/HappyAnding/Views/ExploreShortcutViews/ExploreShortcutView.swift @@ -25,7 +25,7 @@ struct ExploreShortcutView: View { icon: "updateAppIcon", tagName: TextLiteral.appUpdateTag, title: TextLiteral.updateCellDescription, - isCanDismiss: true) + isDismissible: true) .navigationLinkRouter(data: NavigationUpdateInfo.first) .id(000) } diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/AboutUpdateView.swift similarity index 96% rename from HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift rename to HappyAnding/HappyAnding/Views/FeatureViews/AboutUpdateView.swift index 7fcd75be..38edc44e 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/UpdateInfoView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/AboutUpdateView.swift @@ -1,5 +1,5 @@ // -// UpdateInfoView.swift +// AboutUpdateView.swift // HappyAnding // // Created by HanGyeongjun on 2023/05/29. @@ -7,7 +7,7 @@ import SwiftUI -struct UpdateInfoView: View { +struct AboutUpdateView: View { @Environment(\.loginAlertKey) var loginAlerter @AppStorage("useWithoutSignIn") var useWithoutSignIn: Bool = false @@ -67,7 +67,7 @@ struct UpdateInfoView: View { .navigationBarTitleDisplayMode(.inline) .background(Color.shortcutsZipBackground) .sheet(isPresented: self.$isShowFormView) { - ShortcutsZipFormView(viewModel: FormViewModel()) + SuggestionFormView(viewModel: SuggestionFormViewModel()) .presentationDetents([.large]) .presentationDragIndicator(.visible) } @@ -128,6 +128,6 @@ struct UpdateInfoView: View { struct UpdateInfoView_Previews: PreviewProvider { static var previews: some View { - UpdateInfoView() + AboutUpdateView() } } diff --git a/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift b/HappyAnding/HappyAnding/Views/FeatureViews/SuggestionFormView.swift similarity index 87% rename from HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift rename to HappyAnding/HappyAnding/Views/FeatureViews/SuggestionFormView.swift index 20dd26d0..a6bad8ba 100644 --- a/HappyAnding/HappyAnding/Views/FeatureViews/ShortcutsZipFormView.swift +++ b/HappyAnding/HappyAnding/Views/FeatureViews/SuggestionFormView.swift @@ -1,5 +1,5 @@ // -// ShortcutsZipFormView.swift +// SuggestionFormView.swift // HappyAnding // // Created by HanGyeongjun on 10/23/23. @@ -7,13 +7,13 @@ import SwiftUI -struct ShortcutsZipFormView: View { +struct SuggestionFormView: View { enum Field: Hashable { case text } - @StateObject var viewModel: FormViewModel + @StateObject var viewModel: SuggestionFormViewModel @FocusState var focusState: Bool @State var formText: String = "" @@ -23,10 +23,10 @@ struct ShortcutsZipFormView: View { VStack(spacing: 0) { ScrollView { VStack(alignment: .leading, spacing: 24) { - Text(TextLiteral.formViewTitle) + Text(TextLiteral.SuggestionFormViewTitle) .shortcutsZipTitle1() .foregroundStyle(Color.gray6) - Text(TextLiteral.formViewSubTitle) + Text(TextLiteral.SuggestionFormViewSubTitle) .shortcutsZipHeadline() .foregroundStyle(Color.gray4) @@ -37,7 +37,7 @@ struct ShortcutsZipFormView: View { Image(systemName: "checkmark.circle.fill") .largeShortcutIcon() .foregroundStyle(Color.shortcutsZipSuccess) - Text(TextLiteral.formViewSuccessMessage) + Text(TextLiteral.SuggestionFormViewSuccessMessage) .shortcutsZipHeadline() .foregroundStyle(Color.gray4) } @@ -47,7 +47,7 @@ struct ShortcutsZipFormView: View { Spacer() } } else { - TextField(TextLiteral.formViewTextPlaceholder, text: $formText, axis: .vertical) + TextField(TextLiteral.SuggestionFormViewTextPlaceholder, text: $formText, axis: .vertical) .shortcutsZipBody1() .padding(.horizontal, 12) .padding(.vertical, 16)