From b751bf5594cd1cb2d3419e449c265dc9fbd3c855 Mon Sep 17 00:00:00 2001 From: Woowwhee <1366hee@gmail.com> Date: Wed, 4 Dec 2024 23:23:03 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EB=B0=8F=20=EC=88=98=EC=A0=95=20(3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Main_Page + 리퀘스트 정보 연동을 위한 State 변수 추가 + 리퀘스트 페이지로 이동 가능 - RequestList_Page + 전반적인 디자인 수정 + 보낸 리퀘스트와 받은 리퀘스트 구분해서 확인 가능 - ReqeustDetail_Page + 신규 페이지 + 리퀘스트에 대한 자세한 설명 확인 가능 + 리퀘스트 반려 사유를 확인 가능 - Project_Page + 캘린더 기능 업데이트 + 할 일 보는 기능 업데이트 --- noto-App/noto-App.xcodeproj/project.pbxproj | 16 +- .../mail.imageset/Contents.json | 21 +++ .../Assets.xcassets/mail.imageset/mail.png | Bin 0 -> 36584 bytes .../paper-plane.imageset/Contents.json | 21 +++ .../paper-plane.imageset/paper-plane.png | Bin 0 -> 20264 bytes .../receive.imageset/Contents.json | 21 +++ .../receive.imageset/receive.png | Bin 0 -> 14474 bytes .../noto-App/Component/Frame_Component.swift | 7 + .../noto-App/Component/Header_Component.swift | 2 +- .../noto-App/Component/Styles/FontStyle.swift | 2 +- .../noto-App/Component/Sub_Component.swift | 63 +++++++ .../DataModel/Request_DataModel.swift | 115 +++++++++--- .../noto-App/DataModel/User_DataModel.swift | 11 ++ noto-App/noto-App/Page/Main_Page.swift | 38 +++- .../noto-App/Page/ProgressList_Page.swift | 6 +- noto-App/noto-App/Page/Project_Page.swift | 111 ++++++----- .../noto-App/Page/RequestDetail_Page.swift | 177 ++++++++++++++++++ noto-App/noto-App/Page/RequestList_Page.swift | 93 +++++++++ noto-App/noto-App/Page/Request_Page.swift | 48 ----- noto-App/noto-App/Page/TodoDetail_Page.swift | 33 +--- noto-App/noto-App/noto_AppApp.swift | 5 +- 21 files changed, 618 insertions(+), 172 deletions(-) create mode 100644 noto-App/noto-App/Assets.xcassets/mail.imageset/Contents.json create mode 100644 noto-App/noto-App/Assets.xcassets/mail.imageset/mail.png create mode 100644 noto-App/noto-App/Assets.xcassets/paper-plane.imageset/Contents.json create mode 100644 noto-App/noto-App/Assets.xcassets/paper-plane.imageset/paper-plane.png create mode 100644 noto-App/noto-App/Assets.xcassets/receive.imageset/Contents.json create mode 100644 noto-App/noto-App/Assets.xcassets/receive.imageset/receive.png create mode 100644 noto-App/noto-App/DataModel/User_DataModel.swift create mode 100644 noto-App/noto-App/Page/RequestDetail_Page.swift create mode 100644 noto-App/noto-App/Page/RequestList_Page.swift delete mode 100644 noto-App/noto-App/Page/Request_Page.swift diff --git a/noto-App/noto-App.xcodeproj/project.pbxproj b/noto-App/noto-App.xcodeproj/project.pbxproj index 58f7221..0a04093 100644 --- a/noto-App/noto-App.xcodeproj/project.pbxproj +++ b/noto-App/noto-App.xcodeproj/project.pbxproj @@ -23,7 +23,9 @@ 621B9BD72CF46B5800451367 /* Main_Page.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621B9BD62CF46B5300451367 /* Main_Page.swift */; }; 621B9BD92CF46C5100451367 /* Project_Progress_Component.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621B9BD82CF46C4800451367 /* Project_Progress_Component.swift */; }; 621B9BDB2CF4750400451367 /* Setting_Page.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621B9BDA2CF474FD00451367 /* Setting_Page.swift */; }; - 621B9BDD2CF47F2C00451367 /* Request_Page.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621B9BDC2CF47F2700451367 /* Request_Page.swift */; }; + 621B9BDD2CF47F2C00451367 /* RequestList_Page.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621B9BDC2CF47F2700451367 /* RequestList_Page.swift */; }; + 62251AA22D008827004E1453 /* RequestDetail_Page.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62251AA12D00881F004E1453 /* RequestDetail_Page.swift */; }; + 62251AA42D009101004E1453 /* User_DataModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62251AA32D0090F5004E1453 /* User_DataModel.swift */; }; 627078DE2CE30A660027FF09 /* ColorStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 627078DD2CE30A5D0027FF09 /* ColorStyle.swift */; }; 627FFE9C2CEC295100DF70E8 /* FontStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 627FFE9B2CEC294E00DF70E8 /* FontStyle.swift */; }; 627FFE9E2CEC299700DF70E8 /* Frame_Component.swift in Sources */ = {isa = PBXBuildFile; fileRef = 627FFE9D2CEC299300DF70E8 /* Frame_Component.swift */; }; @@ -74,7 +76,9 @@ 621B9BD62CF46B5300451367 /* Main_Page.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main_Page.swift; sourceTree = ""; }; 621B9BD82CF46C4800451367 /* Project_Progress_Component.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Project_Progress_Component.swift; sourceTree = ""; }; 621B9BDA2CF474FD00451367 /* Setting_Page.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Setting_Page.swift; sourceTree = ""; }; - 621B9BDC2CF47F2700451367 /* Request_Page.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Request_Page.swift; sourceTree = ""; }; + 621B9BDC2CF47F2700451367 /* RequestList_Page.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestList_Page.swift; sourceTree = ""; }; + 62251AA12D00881F004E1453 /* RequestDetail_Page.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestDetail_Page.swift; sourceTree = ""; }; + 62251AA32D0090F5004E1453 /* User_DataModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User_DataModel.swift; sourceTree = ""; }; 623334682CDDE79100DE9DA1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 627078DD2CE30A5D0027FF09 /* ColorStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorStyle.swift; sourceTree = ""; }; 627FFE9B2CEC294E00DF70E8 /* FontStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontStyle.swift; sourceTree = ""; }; @@ -192,10 +196,11 @@ 621B9BCD2CF4448F00451367 /* Page */ = { isa = PBXGroup; children = ( + 62251AA12D00881F004E1453 /* RequestDetail_Page.swift */, 62FB21492CFEAE0300B298F0 /* Project_Page.swift */, 62D1EA692CFDA95B005801F6 /* ProgressList_Page.swift */, 62D1EA622CFD8852005801F6 /* TodoDetail_Page.swift */, - 621B9BDC2CF47F2700451367 /* Request_Page.swift */, + 621B9BDC2CF47F2700451367 /* RequestList_Page.swift */, 621B9BDA2CF474FD00451367 /* Setting_Page.swift */, 621B9BD62CF46B5300451367 /* Main_Page.swift */, ); @@ -221,6 +226,7 @@ 62D1EA5D2CFD80D8005801F6 /* DataModel */ = { isa = PBXGroup; children = ( + 62251AA32D0090F5004E1453 /* User_DataModel.swift */, 62D1EA672CFDA6AC005801F6 /* Project_DataModel.swift */, 62D1EA652CFD9775005801F6 /* Person_DataModel.swift */, 62D1EA602CFD8130005801F6 /* Todo_DataModel.swift */, @@ -365,6 +371,7 @@ 1371F01E2CDDE0150034FC36 /* ContentView.swift in Sources */, 621B9BD72CF46B5800451367 /* Main_Page.swift in Sources */, 627FFE9C2CEC295100DF70E8 /* FontStyle.swift in Sources */, + 62251AA22D008827004E1453 /* RequestDetail_Page.swift in Sources */, 62D1EA612CFD813D005801F6 /* Todo_DataModel.swift in Sources */, 621B9BD92CF46C5100451367 /* Project_Progress_Component.swift in Sources */, 62D1EA632CFD8865005801F6 /* TodoDetail_Page.swift in Sources */, @@ -373,8 +380,9 @@ 627FFE9E2CEC299700DF70E8 /* Frame_Component.swift in Sources */, 1371F0202CDDE0150034FC36 /* Item.swift in Sources */, 62FB214A2CFEAE1800B298F0 /* Project_Page.swift in Sources */, - 621B9BDD2CF47F2C00451367 /* Request_Page.swift in Sources */, + 621B9BDD2CF47F2C00451367 /* RequestList_Page.swift in Sources */, 62D1EA6A2CFDA962005801F6 /* ProgressList_Page.swift in Sources */, + 62251AA42D009101004E1453 /* User_DataModel.swift in Sources */, 62D1EA5F2CFD80F6005801F6 /* Request_DataModel.swift in Sources */, 62D1EA682CFDA6B1005801F6 /* Project_DataModel.swift in Sources */, 1371F01C2CDDE0150034FC36 /* noto_AppApp.swift in Sources */, diff --git a/noto-App/noto-App/Assets.xcassets/mail.imageset/Contents.json b/noto-App/noto-App/Assets.xcassets/mail.imageset/Contents.json new file mode 100644 index 0000000..0ff4b24 --- /dev/null +++ b/noto-App/noto-App/Assets.xcassets/mail.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "mail.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/noto-App/noto-App/Assets.xcassets/mail.imageset/mail.png b/noto-App/noto-App/Assets.xcassets/mail.imageset/mail.png new file mode 100644 index 0000000000000000000000000000000000000000..b412606a17582e5e9f5c7252a79ff5fbf7ae3d87 GIT binary patch literal 36584 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�u)F_h?#eBPB%$g;ubcNV)td=dhwgj$&_=3M^ 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 literal 0 HcmV?d00001 diff --git a/noto-App/noto-App/Assets.xcassets/paper-plane.imageset/Contents.json b/noto-App/noto-App/Assets.xcassets/paper-plane.imageset/Contents.json new file mode 100644 index 0000000..93dfb28 --- /dev/null +++ b/noto-App/noto-App/Assets.xcassets/paper-plane.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "paper-plane.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/noto-App/noto-App/Assets.xcassets/paper-plane.imageset/paper-plane.png b/noto-App/noto-App/Assets.xcassets/paper-plane.imageset/paper-plane.png new file mode 100644 index 0000000000000000000000000000000000000000..545f01876bbd5e449448cbcc93a5d02f9def3e68 GIT binary patch literal 20264 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 literal 0 HcmV?d00001 diff --git a/noto-App/noto-App/Assets.xcassets/receive.imageset/Contents.json b/noto-App/noto-App/Assets.xcassets/receive.imageset/Contents.json new file mode 100644 index 0000000..33746c4 --- /dev/null +++ b/noto-App/noto-App/Assets.xcassets/receive.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "receive.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/noto-App/noto-App/Assets.xcassets/receive.imageset/receive.png b/noto-App/noto-App/Assets.xcassets/receive.imageset/receive.png new file mode 100644 index 0000000000000000000000000000000000000000..6e01e67471fd2a76c6ed7181c3f73f99830f2963 GIT binary patch literal 14474 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 V{_u@t>bf#RQBLh?$rH2S{|jCW!<_&C literal 0 HcmV?d00001 diff --git a/noto-App/noto-App/Component/Frame_Component.swift b/noto-App/noto-App/Component/Frame_Component.swift index 4f36fee..5c033ef 100644 --- a/noto-App/noto-App/Component/Frame_Component.swift +++ b/noto-App/noto-App/Component/Frame_Component.swift @@ -55,6 +55,13 @@ struct viewAllComponent: View { } } +struct dumyBottom: View { + var body: some View { + VStack {} + .frame(width: 120, height: 90) + } +} + // 컴포넌트 정의 extension View { func scrollViewStyle() -> some View { diff --git a/noto-App/noto-App/Component/Header_Component.swift b/noto-App/noto-App/Component/Header_Component.swift index 7d410e1..959df11 100644 --- a/noto-App/noto-App/Component/Header_Component.swift +++ b/noto-App/noto-App/Component/Header_Component.swift @@ -9,7 +9,7 @@ struct mainHeader: View { .scaledToFit() .frame(width: 120) } - .frame(width: .infinity, height: 96, alignment: .bottom) + .frame(width: 120, height: 96, alignment: .bottom) } } diff --git a/noto-App/noto-App/Component/Styles/FontStyle.swift b/noto-App/noto-App/Component/Styles/FontStyle.swift index 8f2eac5..1b23e52 100644 --- a/noto-App/noto-App/Component/Styles/FontStyle.swift +++ b/noto-App/noto-App/Component/Styles/FontStyle.swift @@ -61,7 +61,7 @@ struct ProjectContnentFont: ViewModifier { struct DescriptionFont: ViewModifier { func body(content: Content) -> some View { content - .font(.custom("Freesentation-5Medium", size: 12)) + .font(.custom("Freesentation-5Medium", size: 13)) .foregroundColor(.customDarkGray) .multilineTextAlignment(.leading) .lineSpacing(10) diff --git a/noto-App/noto-App/Component/Sub_Component.swift b/noto-App/noto-App/Component/Sub_Component.swift index 0363408..71d6d33 100644 --- a/noto-App/noto-App/Component/Sub_Component.swift +++ b/noto-App/noto-App/Component/Sub_Component.swift @@ -95,6 +95,68 @@ struct settingRow: View { } } +// 행 컴포넌트 +struct titleRow_1: View { + var title: String + + var body: some View { + HStack { + Text(title) + .titleFont() + .lineLimit(1) + .truncationMode(.tail) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 20) + } +} + +struct titleRow_2: View { + var title: String + var imageName: String + var imageSize: CGFloat + + var body: some View { + HStack { + Image(imageName) + .resizable() + .frame(width: imageSize, height: imageSize) + .padding(.trailing, 5) + Text(title) + .titleFont() + .lineLimit(1) + .truncationMode(.tail) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 20) + } +} + +struct titleRow_3: View { + var title: String + var optionAction: () -> Void + + var body: some View { + HStack { + Text(title) + .titleFont() + .lineLimit(1) + .truncationMode(.tail) + Spacer() + Button(action: { + optionAction() + }) { + Image(systemName: "ellipsis") + .font(.system(size: 24)) + .foregroundColor(.customBlack) + } + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 20) + + } +} + enum ShapeType { case circle, rectangle } // 이미지 컴포넌트(크기는 정형 (n x n)) @@ -120,6 +182,7 @@ struct imageComponent: View { } } +// 입력창 컴포넌트 struct inputComponent: View { @Binding var userInput: String var placeholder: String diff --git a/noto-App/noto-App/DataModel/Request_DataModel.swift b/noto-App/noto-App/DataModel/Request_DataModel.swift index 186be3c..6f6bdc1 100644 --- a/noto-App/noto-App/DataModel/Request_DataModel.swift +++ b/noto-App/noto-App/DataModel/Request_DataModel.swift @@ -1,8 +1,9 @@ import SwiftUI -// Request 데이터 모델 -struct Request: Identifiable { +// receivedRequest 데이터 모델 +struct receivedRequest: Identifiable { let id = UUID() // 고유 ID + let rid: Int let sender: String let role: String let title: String @@ -10,37 +11,93 @@ struct Request: Identifiable { let dateSent: Date } +// sendedRequest 데이터 모델 +struct sentRequest: Identifiable { + let id = UUID() // 고유 ID + let rid: Int + let rejected: Int + let receiver: String + let role: String + let title: String + let subtitle: String + let dateSent: Date +} + let dateFormatter: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd HH:mm" return formatter }() -// Request 더미데이터 -let requests: [Request] = [ - Request(sender: "김지민", - role: "관리자", - title: "새로운 할 일 배정", - subtitle: "할 일 추가: '할 일 완료 체크 기능 구현' 작업에 배정되었습니다. 이 작업을 수락하시겠습니까?", - dateSent: dateFormatter.date(from: "2024-11-10 14:00")!), - Request(sender: "한나리", - role: "참가자", - title: "프로젝트 참여 요청", - subtitle: "'iOS 앱 테스트' 프로젝트에 배정되었습니다. 이 프로젝트에 참여하시겠습니까?", - dateSent: dateFormatter.date(from: "2024-10-12 15:30")!), - Request(sender: "임진우", - role: "참가자", - title: "할 일 수정 요청", - subtitle: "'할 일 삭제 기능 구현' 작업의 기한이 변경되었습니다. 수정된 기한을 수락하시겠습니까?", - dateSent: dateFormatter.date(from: "2024-10-11 16:00")!), - Request(sender: "김지민", - role: "관리자", - title: "프로젝트 파일 검토 요청", - subtitle: "프로젝트 'iOS Todo 앱'의 문서 검토 요청이 왔습니다. 검토 후 승인하시겠습니까?", - dateSent: dateFormatter.date(from: "2024-10-10 09:11")!), - Request(sender: "한나리", - role: "참가자", - title: "할 일 우선순위 변경 요청", - subtitle: "현재 작업 중인 'UI 스타일링' 작업의 우선순위가 변경되었습니다. 이를 수락하시겠습니까?", - dateSent: dateFormatter.date(from: "2024-10-09 23:54")!), +// Request 더미데이터 (사용자가 받은 요청) +let receivedRequests: [receivedRequest] = [ + receivedRequest(rid: 0, + sender: "김지민", + role: "관리자", + title: "새로운 할 일 배정", + subtitle: "할 일 추가: '할 일 완료 체크 기능 구현' 작업에 배정되었습니다. 이 작업을 수락하시겠습니까?", + dateSent: dateFormatter.date(from: "2024-11-10 14:00")!), + receivedRequest(rid: 1, + sender: "한나리", + role: "참가자", + title: "프로젝트 참여 요청", + subtitle: "'iOS 앱 테스트' 프로젝트에 배정되었습니다. 이 프로젝트에 참여하시겠습니까?", + dateSent: dateFormatter.date(from: "2024-10-12 15:30")!), + receivedRequest(rid: 2, + sender: "임진우", + role: "참가자", + title: "할 일 수정 요청", + subtitle: "'할 일 삭제 기능 구현' 작업의 기한이 변경되었습니다. 수정된 기한을 수락하시겠습니까?", + dateSent: dateFormatter.date(from: "2024-10-11 16:00")!), + receivedRequest(rid: 3, + sender: "김지민", + role: "관리자", + title: "프로젝트 파일 검토 요청", + subtitle: "프로젝트 'iOS Todo 앱'의 문서 검토 요청이 왔습니다. 검토 후 승인하시겠습니까?", + dateSent: dateFormatter.date(from: "2024-10-10 09:11")!), + receivedRequest(rid: 4, + sender: "한나리", + role: "참가자", + title: "할 일 우선순위 변경 요청", + subtitle: "현재 작업 중인 'UI 스타일링' 작업의 우선순위가 변경되었습니다. 이를 수락하시겠습니까?", + dateSent: dateFormatter.date(from: "2024-10-09 23:54")!) +] + +// Request 더미데이터 (사용자가 보낸 요청) +let sentRequests: [sentRequest] = [ + sentRequest(rid: 0, + rejected: 0, + receiver: "한나리", + role: "참가자", + title: "작업 요청", + subtitle: "할 일: '테스트 시나리오 작성' 작업을 수행해 주세요.", + dateSent: dateFormatter.date(from: "2024-11-08 10:00")!), + sentRequest(rid: 1, + rejected: 0, + receiver: "한나리", + role: "참가자", + title: "프로젝트 초대", + subtitle: "프로젝트 'iOS 앱 테스트'에 초대되었습니다. 참여를 수락해 주세요.", + dateSent: dateFormatter.date(from: "2024-11-07 15:45")!), + sentRequest(rid: 2, + rejected: 1, + receiver: "임진우", + role: "참가자", + title: "기한 연장 요청", + subtitle: "현재 진행 중인 '디자인 검토' 작업의 기한을 3일 연장해 주세요.", + dateSent: dateFormatter.date(from: "2024-11-06 14:30")!), + sentRequest(rid: 3, + rejected: 1, + receiver: "임진우", + role: "참가자", + title: "작업 우선순위 변경", + subtitle: "'UI 테스트' 작업의 우선순위를 조정해 주세요.", + dateSent: dateFormatter.date(from: "2024-11-05 09:00")!), + sentRequest(rid: 4, + rejected: 0, + receiver: "한나리", + role: "참가자", + title: "작업 완료 검토 요청", + subtitle: "'UI 스타일링' 작업을 완료했습니다. 검토 후 승인해 주세요.", + dateSent: dateFormatter.date(from: "2024-11-04 13:20")!) ] diff --git a/noto-App/noto-App/DataModel/User_DataModel.swift b/noto-App/noto-App/DataModel/User_DataModel.swift new file mode 100644 index 0000000..93a63cf --- /dev/null +++ b/noto-App/noto-App/DataModel/User_DataModel.swift @@ -0,0 +1,11 @@ +import SwiftUI + +// 앱 사용자 데이터 모델 +struct user: Identifiable { + let id = UUID() // 고유 ID + let uid: Int + let name: String + let role: String +} + +let userInfo: user = user(uid: 0, name: "김지민", role: "admin") diff --git a/noto-App/noto-App/Page/Main_Page.swift b/noto-App/noto-App/Page/Main_Page.swift index 88079a7..48b5312 100644 --- a/noto-App/noto-App/Page/Main_Page.swift +++ b/noto-App/noto-App/Page/Main_Page.swift @@ -1,7 +1,7 @@ import SwiftUI enum Tab { case settings, home, projects } -enum Page { case main, requestList, todoDetail, progressList, todoList, projectDetail } +enum Page { case main, requestList, requestDetail, todoDetail, progressList, todoList, projectDetail } struct MainPage_ContentView: View { @State private var selectedTab: Tab = .home @@ -31,7 +31,10 @@ struct MainPage_ContentView_Preview: PreviewProvider { struct mainPage: View { @State private var searchText = "" @State private var currentScreen: Page = .main - @State private var clickedIndex: Int? = 0 + @State private var selectedId: Int = 0 + @State private var selectedRid: Int = 0 + @State private var selectedRequestType: Int = 0 + @State private var selectedRequestRejected: Int = 0 @Binding var selectedTab: Tab @@ -55,7 +58,7 @@ struct mainPage: View { subtitle: todo.subtitle, action: { currentScreen = .todoDetail - clickedIndex = index // 클릭된 인덱스 저장 + selectedId = index // 클릭된 인덱스 저장 } ) } @@ -64,7 +67,7 @@ struct mainPage: View { .padding(.horizontal, 20) } } - viewAllComponent(title: "오늘 내 할 일 모두 보기", action: {currentScreen = .progressList}) + viewAllComponent(title: "오늘 내 할 일 모두 보기", action: {currentScreen = .todoList}) } .blockStyle(height: .infinity) @@ -73,8 +76,8 @@ struct mainPage: View { simpleProgressRow(title: projectList[index].name, progress: projectList[index].progress, Dday: calculateDDay(from: projectList[index].startDate, to: projectList[index].endDate), - action: { print("프로젝트 클릭 수정 필요") - clickedIndex = index}) + action: { currentScreen = .projectDetail + selectedId = projectList[index].pid}) } viewAllComponent(title: "프로젝트 진행 현황 모두 보기", action: {currentScreen = .progressList}) @@ -88,13 +91,26 @@ struct mainPage: View { } .scrollViewStyle() } else if(currentScreen == .requestList) { - RequestPage(currentScreen: $currentScreen) + RequestListPage(currentScreen: $currentScreen, + selectedRid: $selectedRid, + selectedRequestType: $selectedRequestType, + selectedRequestRejected: $selectedRequestRejected) } else if(currentScreen == .todoDetail) { - TodoDetialPage(currentScreen: $currentScreen, prevScreen: .main, index: clickedIndex ?? 0) + TodoDetialPage(currentScreen: $currentScreen, prevScreen: .main, index: selectedId) } else if(currentScreen == .progressList) { - ProgressDetailPage(currentScreen: $currentScreen, prevScreen: .main, index: clickedIndex ?? 0) + ProgressDetailPage(currentScreen: $currentScreen, prevScreen: .main, pid: selectedId) } else if(currentScreen == .todoList) { - + // 여기는 모달 올라오게 만들기 + } else if(currentScreen == .requestDetail) { + RequestDetailPage(currentScreen: $currentScreen, + prevScreen: .main, + rid: selectedRid, + type: selectedRequestType, + rejected: selectedRequestRejected) + } else if(currentScreen == .projectDetail) { + ProjectPage(currentScreen: $currentScreen, + prevScreen: currentScreen, + pid: selectedId) } } } @@ -109,3 +125,5 @@ struct ProjectSelectionView: View { } } } + + diff --git a/noto-App/noto-App/Page/ProgressList_Page.swift b/noto-App/noto-App/Page/ProgressList_Page.swift index f29d854..7681a1f 100644 --- a/noto-App/noto-App/Page/ProgressList_Page.swift +++ b/noto-App/noto-App/Page/ProgressList_Page.swift @@ -5,7 +5,7 @@ struct ProgressDetailPage_ContentView: View { @State private var prevScreen: Page = .main @State private var clickedIndex: Int = 1 var body: some View { - ProgressDetailPage(currentScreen: $currentScreen, prevScreen: prevScreen, index: clickedIndex) + ProgressDetailPage(currentScreen: $currentScreen, prevScreen: prevScreen, pid: clickedIndex) } } @@ -19,7 +19,7 @@ struct ProgressDetailPage: View { @State private var searchText = "" @Binding var currentScreen: Page var prevScreen: Page - var index: Int + var pid: Int var body: some View { VStack { @@ -38,7 +38,7 @@ struct ProgressDetailPage: View { projectContentRows(projectIndex: index) .padding(.bottom, 10) } - viewAllComponent(title: "프로젝트 페이지로 이동", action: {print("프로젝트 이동 클릭")}) + viewAllComponent(title: "프로젝트 페이지로 이동", action: {currentScreen = .projectDetail}) } .blockStyle(height: .infinity) } diff --git a/noto-App/noto-App/Page/Project_Page.swift b/noto-App/noto-App/Page/Project_Page.swift index 5f6c332..d92dd2b 100644 --- a/noto-App/noto-App/Page/Project_Page.swift +++ b/noto-App/noto-App/Page/Project_Page.swift @@ -4,10 +4,8 @@ struct ProjectPage_ContentView: View { @State private var currentScreen: Page = .projectDetail @State private var prevScreen: Page = .main @State private var pid: Int = 0 - @State private var selectedDate: Date? = nil var body: some View { - ProjectPage(selectedDate: $selectedDate, - currentScreen: $currentScreen, + ProjectPage(currentScreen: $currentScreen, prevScreen: prevScreen, pid: pid) } @@ -21,53 +19,59 @@ struct ProjectPage_ContentView_Preview: PreviewProvider { struct ProjectPage: View { @State private var searchText = "" - @Binding var selectedDate: Date? + @State var selectedDate: Date = Date() @Binding var currentScreen: Page + @Namespace var todoSection var prevScreen: Page var pid: Int let calendar = Calendar.current var body: some View { - let project = projectList[pid] + let project = projectList.filter { project in + return project.pid == pid // startDate와 endDate 사이인지 확인 + } + VStack { - ScrollView { - VStack(spacing: 20) { - mainHeader() - requestComponent(req_count: 5, action: { currentScreen = .requestList }) - - VStack{ - VStack(alignment: .leading, spacing: 5) { - Spacer() - titleRow(title: project.name, optionAction: {print("설정 버튼 수정 필요")}) - .padding(.top, 10) - Divider() - .padding(10) - VStack(alignment: .leading, spacing: 15){ - dateRow(startDate: project.startDate, endDate: project.endDate) - participantRow() + ScrollViewReader { proxy in + ScrollView { + VStack(spacing: 20) { + mainHeader() + requestComponent(req_count: 5, action: { currentScreen = .requestList }) + + VStack{ + VStack(alignment: .leading, spacing: 5) { + Spacer() + titleRow_3(title: project[0].name, optionAction: {print("프로젝트 설정 버튼 클릭 (수정 필요)")}) + .padding(.top, 10) Divider() - .padding(.horizontal, 10) - descriptionRow(description: project.description) + .padding(10) + VStack(alignment: .leading, spacing: 15){ + dateRow(startDate: project[0].startDate, endDate: project[0].endDate) + participantRow() + Divider() + .padding(.horizontal, 10) + descriptionRow(description: project[0].description) + } + Spacer() } + } + .blockStyle(height: .infinity) + + VStack{ Spacer() + CalendarView(selectedDate: $selectedDate, + onDateSelected: { + withAnimation{ proxy.scrollTo(todoSection, anchor: .bottom) } + }, project: project[0]) + .padding(.top, 10) } - } - .blockStyle(height: .infinity) - - VStack{ - Spacer() - CalendarView(selectedDate: $selectedDate, project: project) - .padding(.top, 10) - } - .blockStyle(height: .infinity) - - if(selectedDate != nil) { + .blockStyle(height: .infinity) + VStack(spacing: 10) { Spacer() let filteredTodos = todolist.filter { todo in - guard let selectedDate = selectedDate else { return false } return (todo.startDate...todo.endDate).contains(selectedDate) // startDate와 endDate 사이인지 확인 } @@ -98,11 +102,14 @@ struct ProjectPage: View { viewAllComponent(title: "오늘 내 할 일 모두 보기", action: {currentScreen = .todoList}) } .blockStyle(height: .infinity) + + dumyBottom() + .id(todoSection) } + .backgroundStyle() } - .backgroundStyle() + .scrollViewStyle() } - .scrollViewStyle() } } } @@ -110,21 +117,24 @@ struct ProjectPage: View { struct CalendarView: View { // 현재 월 및 연도 @State private var currentDate = Date() - @Binding var selectedDate: Date? + @Binding var selectedDate: Date + var onDateSelected: () -> Void let calendar = Calendar.current let project: project var body: some View { VStack(alignment: .leading) { Spacer() - titleRow(title: "\(monthAndYear(for: currentDate)) 캘린더", optionAction: {print("설정 버튼 수정 필요")}) + titleRow_3(title: "\(monthAndYear(for: currentDate)) 캘린더", optionAction: {print("캘린더 설정 버튼 클릭 (수정 필요)")}) Divider() .padding(.horizontal, 20) .padding(.top, 10) // 캘린더 레이아웃 - CalendarGridView(currentDate: $currentDate, selectedDate: $selectedDate) + CalendarGridView(currentDate: $currentDate, + selectedDate: $selectedDate, + onDateSelected: onDateSelected) .padding() } @@ -141,13 +151,15 @@ struct CalendarView: View { struct CalendarGridView: View { @Binding var currentDate: Date - @Binding var selectedDate: Date? + @Binding var selectedDate: Date + var onDateSelected: () -> Void let calendar = Calendar.current var body: some View { let daysInMonth = getDaysInMonth(for: currentDate) let firstDayOfMonth = getFirstDayOfMonth(for: currentDate) let weekdays = calendar.shortWeekdaySymbols + let components = calendar.dateComponents([.year, .month, .day], from: selectedDate) VStack(spacing: 5) { // 요일 헤더 @@ -166,19 +178,28 @@ struct CalendarGridView: View { ForEach(0.. Void - - var body: some View { - HStack { - Text(title) - .titleFont() - .lineLimit(1) - .truncationMode(.tail) - Spacer() - Button(action: { - optionAction() - }) { - Image(systemName: "ellipsis") - .font(.system(size: 24)) - .foregroundColor(.customBlack) - } - } - .frame(maxWidth: .infinity, alignment: .leading) - .padding(.horizontal, 20) - - } -} - struct dateRow: View { var startDate: Date var endDate: Date diff --git a/noto-App/noto-App/noto_AppApp.swift b/noto-App/noto-App/noto_AppApp.swift index 7162cc1..f482b9d 100644 --- a/noto-App/noto-App/noto_AppApp.swift +++ b/noto-App/noto-App/noto_AppApp.swift @@ -18,8 +18,9 @@ struct noto_AppApp: App { var body: some Scene { WindowGroup { - //ContentView() - MainPage_ContentView() + //ContentView() + MainPage_ContentView() + //ProjectPage_ContentView() } .modelContainer(sharedModelContainer) From 3e2f4b4e34bcb2d7c76f68f990b4050a807d4d44 Mon Sep 17 00:00:00 2001 From: Woowwhee <1366hee@gmail.com> Date: Tue, 10 Dec 2024 13:34:55 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20github=20pages=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80/=EB=8F=99=EC=98=81=EC=83=81=20=EC=A0=9C=EC=99=B8=20?= =?UTF-8?q?=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=88=98=EC=A0=95=20=EC=99=84?= =?UTF-8?q?=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/assets/css/main.css | 8 ++++---- docs/images/NOTO icon.png | Bin 0 -> 26997 bytes docs/index.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 docs/images/NOTO icon.png diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css index e0bb5b1..fd08145 100644 --- a/docs/assets/css/main.css +++ b/docs/assets/css/main.css @@ -885,7 +885,7 @@ input, select, textarea { } .image.filtered:after { - background-image: url("../../images/overlay.png"), linear-gradient(45deg, rgba(114, 97, 147, 0.25) 25%, rgba(227, 123, 124, 0.25) 50%, rgba(255, 228, 180, 0.25)); + background-image: url("../../images/overlay.png"); background-size: 128px 128px, auto; pointer-events: none; content: ''; @@ -2210,7 +2210,7 @@ input, select, textarea { } .panel > *.color0 { - background-image: url("../../images/overlay.png"), linear-gradient(45deg, #726193 20%, #e37b7c 60%, #ffe4b4); + background-image: url("../../images/overlay.png"), linear-gradient(45deg, #028DFF 20%, #028DFF 60%, #1BD5FF); background-size: 128px 128px, auto; } @@ -2223,7 +2223,7 @@ input, select, textarea { .panel > *.color2 { background-image: url("../../images/overlay.png"), linear-gradient(45deg, rgba(114, 97, 147, 0.25) 25%, rgba(227, 123, 124, 0.25) 50%, rgba(255, 228, 180, 0.25)); background-size: 128px 128px, auto; - background-color: #e37b7c; + background-color: #028DFF; } .panel > *.color3 { @@ -2731,7 +2731,7 @@ input, select, textarea { } .panel.color0 { - background-image: url("../../images/overlay.png"), linear-gradient(45deg, #726193 20%, #e37b7c 60%, #ffe4b4); + background-image: url("../../images/overlay.png"), linear-gradient(45deg, white 20%, white 60%, white); background-size: 128px 128px, auto; } diff --git a/docs/images/NOTO icon.png b/docs/images/NOTO icon.png new file mode 100644 index 0000000000000000000000000000000000000000..131ec15db4506a34a779c6c40762e6118dd8d4e1 GIT binary patch literal 26997 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 -->
- +