diff --git a/Smeem-iOS/Smeem-iOS/Global/UIComponents/SwiftUI/CustomSegmentedControl.swift b/Smeem-iOS/Smeem-iOS/Global/UIComponents/SwiftUI/CustomSegmentedControl.swift index 52eabd3f..d87b513f 100644 --- a/Smeem-iOS/Smeem-iOS/Global/UIComponents/SwiftUI/CustomSegmentedControl.swift +++ b/Smeem-iOS/Smeem-iOS/Global/UIComponents/SwiftUI/CustomSegmentedControl.swift @@ -16,20 +16,15 @@ struct CustomSegmentedControl: View { ForEach(options.indices, id: \.self) { index in SegmentButton( title: options[index], - isSelected: isCoachingOn(index), + isSelected: selectedIndex == index, isFirstButton: index == 0, isLastButton: index == options.count - 1, action: { selectedIndex = index } ) } } -// .background(Color.gray.opacity(0.2)) .cornerRadius(6) } - - private func isCoachingOn(_ index: Int) -> Bool { - return options[index] == "코칭 ON" && selectedIndex == index - } } struct SegmentButton: View { @@ -48,12 +43,14 @@ struct SegmentButton: View { .background(backgroundColor) .foregroundColor(foregroundColor) .font(Font(UIFont.c5)) -// .lineLimit(1) .minimumScaleFactor(0.9) .overlay( Group { if isSelected && isFirstButton { - CustomStrokeShape(includeLeadingCorners: false) + CustomStrokeShape( + includeLeadingCorners: isFirstButton, + includeTrailingCorners: isLastButton + ) .stroke(Color(UIColor.gray500), lineWidth: 1) } else if !isSelected { CustomStrokeShape( @@ -68,15 +65,16 @@ struct SegmentButton: View { } private var backgroundColor: Color { - isSelected ? Color(UIColor.point) : isFirstButton ? Color(UIColor.gray100) : Color(UIColor.white) + // 왼쪽 버튼 논리 + if isFirstButton { + return isSelected ? Color(UIColor.gray100) : Color(UIColor.white) + } + // 오른쪽 버튼 논리 + return isSelected ? Color(UIColor.point) : Color(UIColor.white) } private var foregroundColor: Color { - isSelected ? Color(UIColor.smeemWhite) : Color(UIColor.gray500) - } - - private var isCoachingOn: Bool { - title == "코칭 ON" + isSelected ? isFirstButton ? Color(UIColor.gray500): Color(UIColor.smeemWhite) : Color(UIColor.gray500) } } diff --git a/Smeem-iOS/Smeem-iOS/Presentation/DetailDiary/DetailDiaryCoachedView.swift b/Smeem-iOS/Smeem-iOS/Presentation/DetailDiary/DetailDiaryCoachedView.swift index 8d11396f..1e761856 100644 --- a/Smeem-iOS/Smeem-iOS/Presentation/DetailDiary/DetailDiaryCoachedView.swift +++ b/Smeem-iOS/Smeem-iOS/Presentation/DetailDiary/DetailDiaryCoachedView.swift @@ -52,6 +52,7 @@ struct DetailDiaryCoachedView: View { } .onReceive(navigationViewModel.rightButtonTapped) { isShowingFloatingButtons = true + AmplitudeManager.shared.track(event: AmplitudeConstant.diaryDetail.mydiary_edit(hasCorrections).event) } .confirmationDialog("", isPresented: $isShowingFloatingButtons) { Button("수정하기", role: .none) { @@ -70,9 +71,6 @@ struct DetailDiaryCoachedView: View { navigateToEditDiary() } } - .onTapGesture { - AmplitudeManager.shared.track(event: AmplitudeConstant.diaryDetail.mydiary_edit(hasCorrections).event) - } Button("삭제하기", role: .destructive) { deleteDiaryWithAPI(diaryID: diaryID ?? 0) @@ -121,7 +119,7 @@ struct DetailDiaryCoachedView: View { } } .onAppear { - AmplitudeManager.shared.track(event: AmplitudeConstant.diaryDetail.mydiary_view(hasCorrections).event) + AmplitudeManager.shared.track(event: AmplitudeConstant.diaryDetail.mydiary_click.event) Task { await fetchCoachingData(diaryID: diaryID ?? 0) } @@ -171,7 +169,7 @@ extension DetailDiaryCoachedView { } private func convertSelectedIndexToString(_ index: Int) -> String { - return index == 0 ? "코칭 OFF" : "코칭 ON" + return index == 0 ? "on" : "off" } @MainActor @@ -198,7 +196,7 @@ extension DetailDiaryCoachedView { } func deleteDiaryWithAPI(diaryID: Int) { - SmeemLoadingView.showLoading() + isLoading = true detailDiaryService.deleteDiary(diaryID: diaryID) { result in @@ -210,7 +208,7 @@ extension DetailDiaryCoachedView { toastErrorMessage = error break } - SmeemLoadingView.hideLoading() + isLoading = false } } }