diff --git a/heatguard-iOS/Assets.xcassets/WeatherCloudy.imageset/Contents.json b/heatguard-iOS/Assets.xcassets/WeatherCloudy.imageset/Contents.json new file mode 100644 index 0000000..8a2a49b --- /dev/null +++ b/heatguard-iOS/Assets.xcassets/WeatherCloudy.imageset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "filename" : "weather-cloudy.png", + "idiom" : "universal", + "scale" : "1x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/heatguard-iOS/Assets.xcassets/WeatherCloudy.imageset/weather-cloudy.png b/heatguard-iOS/Assets.xcassets/WeatherCloudy.imageset/weather-cloudy.png new file mode 100644 index 0000000..0d93a07 Binary files /dev/null and b/heatguard-iOS/Assets.xcassets/WeatherCloudy.imageset/weather-cloudy.png differ diff --git a/heatguard-iOS/Assets.xcassets/WeatherRain.imageset/Contents.json b/heatguard-iOS/Assets.xcassets/WeatherRain.imageset/Contents.json new file mode 100644 index 0000000..a08b852 --- /dev/null +++ b/heatguard-iOS/Assets.xcassets/WeatherRain.imageset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "filename" : "weather-rain.png", + "idiom" : "universal", + "scale" : "1x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/heatguard-iOS/Assets.xcassets/WeatherRain.imageset/weather-rain.png b/heatguard-iOS/Assets.xcassets/WeatherRain.imageset/weather-rain.png new file mode 100644 index 0000000..ab9fb54 Binary files /dev/null and b/heatguard-iOS/Assets.xcassets/WeatherRain.imageset/weather-rain.png differ diff --git a/heatguard-iOS/Assets.xcassets/WeatherSunny.imageset/Contents.json b/heatguard-iOS/Assets.xcassets/WeatherSunny.imageset/Contents.json index d7b3eb9..119a490 100644 --- a/heatguard-iOS/Assets.xcassets/WeatherSunny.imageset/Contents.json +++ b/heatguard-iOS/Assets.xcassets/WeatherSunny.imageset/Contents.json @@ -4,14 +4,6 @@ "filename" : "weather-sunny.png", "idiom" : "universal", "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" } ], "info" : { diff --git a/heatguard-iOS/Assets.xcassets/WeatherSunny.imageset/weather-sunny.png b/heatguard-iOS/Assets.xcassets/WeatherSunny.imageset/weather-sunny.png index 7909e6b..955406b 100644 Binary files a/heatguard-iOS/Assets.xcassets/WeatherSunny.imageset/weather-sunny.png and b/heatguard-iOS/Assets.xcassets/WeatherSunny.imageset/weather-sunny.png differ diff --git a/heatguard-iOS/Core/Dashboard/HGDashboardService.swift b/heatguard-iOS/Core/Dashboard/HGDashboardService.swift index 6aeacfe..26435ef 100644 --- a/heatguard-iOS/Core/Dashboard/HGDashboardService.swift +++ b/heatguard-iOS/Core/Dashboard/HGDashboardService.swift @@ -225,6 +225,9 @@ struct HomeWeather: Equatable { switch skyStatus { case "CLEAR": "WeatherSunny" case "PARTLY_CLOUDY": "WeatherPartlyCloudy" + case "CLOUDY": "WeatherCloudy" + case "RAIN": "WeatherRain" + case "SNOW": nil default: "WeatherSunny" } } diff --git a/heatguard-iOS/Presentation/Components/HGEmergencyComponents.swift b/heatguard-iOS/Presentation/Components/HGEmergencyComponents.swift index 0fa748e..bf22de0 100644 --- a/heatguard-iOS/Presentation/Components/HGEmergencyComponents.swift +++ b/heatguard-iOS/Presentation/Components/HGEmergencyComponents.swift @@ -1,5 +1,12 @@ import SwiftUI +enum HGEmergencyPopupLayout { + static let popupHeight: CGFloat = 560 + static let contentTopPadding: CGFloat = 22 + static let contactCardTopPadding: CGFloat = 20 + static let actionHorizontalPadding: CGFloat = 18 +} + struct HGEmergencyPulse: View { @State private var isExpanded = false diff --git a/heatguard-iOS/Presentation/Features/EmergencyAlert/EmergencyAlertView.swift b/heatguard-iOS/Presentation/Features/EmergencyAlert/EmergencyAlertView.swift index 97435cb..0fd254f 100644 --- a/heatguard-iOS/Presentation/Features/EmergencyAlert/EmergencyAlertView.swift +++ b/heatguard-iOS/Presentation/Features/EmergencyAlert/EmergencyAlertView.swift @@ -24,16 +24,16 @@ struct EmergencyAlertView: View { } var body: some View { - HGStatusPopup(title: "긴급 호출", height: 560) { + HGStatusPopup(title: "긴급 호출", height: HGEmergencyPopupLayout.popupHeight) { callPrompt - .padding(.top, 22) + .padding(.top, HGEmergencyPopupLayout.contentTopPadding) contactCard - .padding(.top, 20) + .padding(.top, HGEmergencyPopupLayout.contactCardTopPadding) } actions: { HGSecondaryButton(title: isCalling ? "호출 중..." : "호출하기", action: onCall) .disabled(isCalling) - .padding(.horizontal, 18) + .padding(.horizontal, HGEmergencyPopupLayout.actionHorizontalPadding) } .alert(error?.title ?? "본사 전화 오류", isPresented: errorAlert) { Button("확인", role: .cancel) {} diff --git a/heatguard-iOS/Presentation/Features/EmergencyCall/EmergencyCallView.swift b/heatguard-iOS/Presentation/Features/EmergencyCall/EmergencyCallView.swift index 6a52d6d..a8aa82b 100644 --- a/heatguard-iOS/Presentation/Features/EmergencyCall/EmergencyCallView.swift +++ b/heatguard-iOS/Presentation/Features/EmergencyCall/EmergencyCallView.swift @@ -27,19 +27,19 @@ struct EmergencyCallView: View { } var body: some View { - HGStatusPopup(title: "긴급 호출", height: 620) { + HGStatusPopup(title: "긴급 호출", height: HGEmergencyPopupLayout.popupHeight) { callStatus - .padding(.top, 32) + .padding(.top, HGEmergencyPopupLayout.contentTopPadding) contactCard - .padding(.top, 20) + .padding(.top, HGEmergencyPopupLayout.contactCardTopPadding) } actions: { HGSecondaryButton( title: isCancelling ? "취소 중..." : canCancel ? "호출 취소" : "접수 완료", action: onCancel ) .disabled(isCancelling || !canCancel) - .padding(.horizontal, 18) + .padding(.horizontal, HGEmergencyPopupLayout.actionHorizontalPadding) } .alert(error?.title ?? "긴급 호출 오류", isPresented: errorAlert) { Button("확인", role: .cancel) {}