diff --git a/TAMINGO/Features/MyPage/Notification/View/NotificationView.swift b/TAMINGO/Features/MyPage/Notification/View/NotificationView.swift index 5c6610f..9df8820 100644 --- a/TAMINGO/Features/MyPage/Notification/View/NotificationView.swift +++ b/TAMINGO/Features/MyPage/Notification/View/NotificationView.swift @@ -11,8 +11,9 @@ struct NotificationView: View { @State private var viewModel = NotificationSettingViewModel() var body: some View { - VStack(alignment: .leading) { + VStack(alignment: .leading, spacing: 12) { MyPageHeader(title: "알림 설정") + .padding(.bottom, 4) startAlert @@ -26,7 +27,8 @@ struct NotificationView: View { Spacer() } - .padding() + .padding(.horizontal, 32) + .padding(.vertical, 16) .task { viewModel.fetchSettings() } diff --git a/TAMINGO/Features/MyPage/Personalization/View/PersonalizationView.swift b/TAMINGO/Features/MyPage/Personalization/View/PersonalizationView.swift index ffa8b51..325fd7d 100644 --- a/TAMINGO/Features/MyPage/Personalization/View/PersonalizationView.swift +++ b/TAMINGO/Features/MyPage/Personalization/View/PersonalizationView.swift @@ -12,11 +12,11 @@ struct PersonalizationView: View { @State private var showResetAlert = false var body: some View { - VStack(alignment: .leading) { + VStack(alignment: .leading, spacing: 16) { MyPageHeader(title: "개인화 학습") - .padding([.horizontal, .top]) + .padding(.horizontal, 32) ScrollView { - VStack(alignment: .leading) { + VStack(alignment: .leading, spacing: 12) { ToggleBox( title: "사용자 행동 수집", sub: "사용자의 행동을 학습하여\n 더 정확한 예측을 제공합니다", @@ -79,9 +79,10 @@ struct PersonalizationView: View { GuideBoxView(title: "학습 데이터 안내", description: "• 이동 패턴이 학습되어 더 정확한 예측이 가능합니다\n• 사용자 수정 내역도 자동으로 학습됩니다\n• 모든 데이터는 기기 내에 안전하게 저장됩니다") .padding(.bottom, 80) } - .padding() + .padding(.horizontal, 32) } } + .padding(.vertical,16) .task { async let _ = viewModel.loadSetting() async let _ = viewModel.loadStatistics() diff --git a/TAMINGO/Features/MyPage/Setting/SettingsView.swift b/TAMINGO/Features/MyPage/Setting/SettingsView.swift index 054bae9..cc20161 100644 --- a/TAMINGO/Features/MyPage/Setting/SettingsView.swift +++ b/TAMINGO/Features/MyPage/Setting/SettingsView.swift @@ -15,57 +15,63 @@ struct SettingsView: View { @State private var showWithdrawAlert = false var body: some View { - VStack(alignment: .leading) { + VStack(alignment: .leading, spacing: 16) { MyPageHeader(title: "설정") - .padding([.horizontal, .top]) + .padding(.horizontal, 32) ScrollView { - // 앱 정보 - SectionContainerView(title: "앱 정보") { - SettingCard(title: "버전 정보", sub: viewModel.appVersion) { - print("버전 정보 탭") + VStack(alignment: .leading, spacing: 12){ + // 앱 정보 + SectionContainerView(title: "앱 정보") { + SettingCard(title: "버전 정보", sub: viewModel.appVersion) { + print("버전 정보 탭") + } + SettingCard(title: "업데이트 확인", sub: "최신 버전", subColor: .mainMint) { + print("업데이트 확인 탭") + } + SettingCard(title: "오픈소스 라이선스") { + print("오픈소스 라이선스 탭") + } } - SettingCard(title: "업데이트 확인", sub: "최신 버전", subColor: .mainMint) { - print("업데이트 확인 탭") - } - SettingCard(title: "오픈소스 라이선스") { - print("오픈소스 라이선스 탭") - } - } - .padding(.top) - - // 계정 - SectionContainerView(title: "계정") { - SettingCard(title: "로그아웃") { - showLogoutAlert = true - } - SettingCard(title: "회원 탈퇴", isRed: true) { - showWithdrawAlert = true - } - } - - // 약관 및 정책 - SectionContainerView(title: "약관 및 정책") { - SettingCard(title: "서비스 이용약관") { - print("서비스 이용약관 탭") - } - SettingCard(title: "개인정보 처리방침") { - print("개인정보 처리방침 탭") - } - SettingCard(title: "위치 정보 이용약관") { - print("위치 정보 이용약관 탭") + .padding(.horizontal, 32) + + // 계정 + SectionContainerView(title: "계정") { + SettingCard(title: "로그아웃") { + showLogoutAlert = true + } + SettingCard(title: "회원 탈퇴", isRed: true) { + showWithdrawAlert = true + } } - } + .padding(.horizontal, 32) - // 고객센터 - SectionContainerView(title: "고객센터") { - SettingCard(title: "의견 보내기") { - print("의견 보내기 탭") + // 약관 및 정책 + SectionContainerView(title: "약관 및 정책") { + SettingCard(title: "서비스 이용약관") { + print("서비스 이용약관 탭") + } + SettingCard(title: "개인정보 처리방침") { + print("개인정보 처리방침 탭") + } + SettingCard(title: "위치 정보 이용약관") { + print("위치 정보 이용약관 탭") + } + } + .padding(.horizontal, 32) + + // 고객센터 + SectionContainerView(title: "고객센터") { + SettingCard(title: "의견 보내기") { + print("의견 보내기 탭") + } } + .padding(.bottom, 80) + .padding(.horizontal, 32) } - .padding(.bottom, 80) } } + .padding(.vertical, 16) .task { viewModel.loadAppVersion() } @@ -118,7 +124,7 @@ struct SettingCard: View { .frame(width: 6, height: 8) .foregroundStyle(.gray2) } - .padding() + .padding(.vertical) } } } diff --git a/TAMINGO/Features/MyPage/WeeklyReport/Model/InsightType.swift b/TAMINGO/Features/MyPage/WeeklyReport/Model/InsightType.swift index 498172a..4778673 100644 --- a/TAMINGO/Features/MyPage/WeeklyReport/Model/InsightType.swift +++ b/TAMINGO/Features/MyPage/WeeklyReport/Model/InsightType.swift @@ -38,7 +38,7 @@ extension InsightType { case .task: return .subBlue3 case .suggestion: - return .subPink1 + return .subPink2 case .unknown: return .gray1 } @@ -53,7 +53,7 @@ extension InsightType { case .task: return .subBlue1 case .suggestion: - return .subPink + return .subPink1 case .unknown: return .gray0 } diff --git a/TAMINGO/Features/MyPage/WeeklyReport/View/WeeklyReportView.swift b/TAMINGO/Features/MyPage/WeeklyReport/View/WeeklyReportView.swift index 844de81..fab1f4a 100644 --- a/TAMINGO/Features/MyPage/WeeklyReport/View/WeeklyReportView.swift +++ b/TAMINGO/Features/MyPage/WeeklyReport/View/WeeklyReportView.swift @@ -17,7 +17,7 @@ struct WeeklyReportView: View { var body: some View { VStack(alignment: .leading, spacing: 0) { header - .padding(.horizontal, 16) + .padding(.horizontal, 32) ScrollView { VStack(alignment: .leading, spacing: 16) { @@ -33,11 +33,12 @@ struct WeeklyReportView: View { Spacer() } - .padding(16) + .padding(.vertical, 16) + .padding(.horizontal, 32) } } + .padding(.vertical, 16) .navigationBarBackButtonHidden(true) - .padding(.horizontal,16) .task { await vm.fetchReport() }