From c344428dca3e23dafb92427c827dd149efb98b91 Mon Sep 17 00:00:00 2001 From: Jiyong Jung Date: Thu, 18 Jun 2026 01:12:46 +0900 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=EB=8B=89=EB=84=A4=EC=9E=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=A4=91=EC=97=90=20=EB=B0=9C=EC=83=9D?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EC=98=A4=EB=A5=98=20=ED=95=B4=EA=B2=B0=20?= =?UTF-8?q?-=20#357?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Projects/Feature/Settings/Sources/Settings/SettingsView.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Projects/Feature/Settings/Sources/Settings/SettingsView.swift b/Projects/Feature/Settings/Sources/Settings/SettingsView.swift index 4f93deee..427397c0 100644 --- a/Projects/Feature/Settings/Sources/Settings/SettingsView.swift +++ b/Projects/Feature/Settings/Sources/Settings/SettingsView.swift @@ -139,17 +139,18 @@ private extension SettingsView { nicknameTextField .frame(maxWidth: .infinity) } + .padding(.bottom, Spacing.spacing9) } var nicknameTextField: some View { TXTextField( text: $store.nickname, placeholderText: "닉네임을 입력해 주세요.", + isFocused: $isTextFieldFocused, submitLabel: .done, tintColor: Color.Gray.gray500, subText: .init(text: "닉네임 2-8자", state: validationState) ) - .focused($isTextFieldFocused) .onAppear { isTextFieldFocused = true } From c79f012d391f275f3a4a44f964d5c02e8dc858f8 Mon Sep 17 00:00:00 2001 From: Jiyong Jung Date: Thu, 18 Jun 2026 01:13:23 +0900 Subject: [PATCH 2/4] =?UTF-8?q?chore:=20=EC=84=A4=EC=A0=95=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EC=95=84=EC=9D=B4=EC=BD=98=20=EC=97=90=EC=85=8B=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20-=20#357?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../icon_profile.imageset/icon_profile.png | Bin 2079 -> 1972 bytes .../icon_profile.imageset/icon_profile@2x.png | Bin 4496 -> 4239 bytes .../icon_profile.imageset/icon_profile@3x.png | Bin 6979 -> 7292 bytes .../Symbol/ic_edit.imageset/Contents.json | 18 +++++++++++++----- .../Icons/Symbol/ic_edit.imageset/ic_edit.png | Bin 0 -> 503 bytes .../Icons/Symbol/ic_edit.imageset/ic_edit.svg | 3 --- .../Symbol/ic_edit.imageset/ic_edit@2x.png | Bin 0 -> 825 bytes .../Symbol/ic_edit.imageset/ic_edit@3x.png | Bin 0 -> 1257 bytes 8 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit.png delete mode 100644 Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit.svg create mode 100644 Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit@2x.png create mode 100644 Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit@3x.png diff --git a/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Illustration/icon_profile.imageset/icon_profile.png b/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Illustration/icon_profile.imageset/icon_profile.png index 9b6213fdf2e28fb17196152456be2656e5df84d6..7ef194de8d3880aebe10b3dd9d83a2e64d9d0930 100644 GIT binary patch delta 1908 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 delta 4452 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%0AU(vBkx>1tJ%a6|mWW`nN0194}z`nweH3{(h6 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 delta 6955 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 diff --git a/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/Contents.json b/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/Contents.json index c596a82d..454d698d 100644 --- a/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/Contents.json +++ b/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/Contents.json @@ -1,15 +1,23 @@ { "images" : [ { - "filename" : "ic_edit.svg", - "idiom" : "universal" + "filename" : "ic_edit.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ic_edit@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ic_edit@3x.png", + "idiom" : "universal", + "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true } } diff --git a/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit.png b/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..f4b0064f8eb1f9779b77d6b4b47a4469b52b8b89 GIT binary patch literal 503 zcmVU z7!0mkt=78TZeRMouO78Qx7)p880K}cSO|{eEIE#YAPC;!7$SJT-;Xz&O-#}>EglYs zaj(}~!=c)TCrX;&**(-%5j>G7iqzl>>gYGPWm)lLGKq2Uk5E-*;h6Km^L(c&T=;AF z_6+|&cn3xQaS_~g-TH76Eid|Gis1A4yb_$<4u`K&w+qRk1(Rp42el!{p3=~BH!!SUSBx;gz9z~Ii z@D5(jWDJ|g_=#uK1n)eazc6Vs4Y<*0Y*Qf>i&ZTAMEFx0{@@S_o@H@002ovPDHLkV1g&)*bx8# literal 0 HcmV?d00001 diff --git a/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit.svg b/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit.svg deleted file mode 100644 index 84f24af7..00000000 --- a/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit@2x.png b/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ee567a0b2976cc76a5e68beecbdf113c888d0afd GIT binary patch literal 825 zcmV-91IGM`P)@Lj_VOXsE)9H=v>1 z7!8F&Nzf?^m@EPpMez|&Gsjy3URP(cS&5~-4NTM#{s~XzJ@2(x zEE%`k4eRy#r&b$QFiA4_C|wr{1!y!HkVqsB&(TED@AvcDv;0Tnd^tcVfo7R5scI|Juivs$cE4tFiLL?Pi;|~V1$(L<#JinD-O@$IXs8w z@Eo4Qb9i<57oX3kJB@O&FyPZQ@Xcn^Ja`Ir4ScWHlW$6lg(uPfaLEAeRc{HNX-9?} zhoJFz96TNmu&UqhLoSzt)oMkTi~W9oH=oa+;SI&QrTj#PNF)NRG6J5&Y9K?0bUMvc z*eH0?2dx6~F)MAZ)pQ9wWu)UHg zwLr(78lHp2XTOioEiGt;ffxAuBBO-$iYl?s4Kb2{_3u;-9DCvs3wkewJqJf%*iMU~ zToGg6%Wl)^RC79=MH+IZzawK6%?(@;7dTfI@+I~U@#P0^rq>vW00000NkvXXu0mjf Dr2=Is literal 0 HcmV?d00001 diff --git a/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit@3x.png b/Projects/Shared/DesignSystem/Resources/Image/ImageAssets.xcassets/Icons/Symbol/ic_edit.imageset/ic_edit@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..97637a2e71b3380f2b808bb41c0fbe98a3205064 GIT binary patch literal 1257 zcmV=P)b70 zl@y5;6=skMBP^5+7GPv+SWqQ|NF^9L;UXag7@8s=3+9=cUKmL+h#+2awzjt5;NZYaGcz+!%AlmV_V)JA5Rk}4ke8h0lpsGjV`F1w`^%6N89_ni*o2i72|=QAY{E!VUQk#$HeQliT3Y^~ zr0-tkloljQj*Xinq(6~JtmJaJd$%&m3X(0yh9uE7(&6Euoz+k%6n@^^++^JLSMoaO zx#ZYPPEM8`(raJk1UX4j{j*cTthBIw!Y#1_` znwm07j&bUDUP?sJOGQp9m4eO9%_n*2Y#LPN6(h&Mn{4BtGAzdjmQw*d(QTIF0p7S; zdnGw@pgJta2bSXl%khEb_`q^}U^zap93R}|tgNgUGI>*S@cxS-6PCkrSPsjvVL3j~ zbP|^1K^%E*IkU5~(Ue1A^o%~I9I8(RIl@mh=)u2peRy~nWU;uoXr_|m&1bXOIe1~h zJob5KFVLL8-rio2fl6|SFoKHDuzGrWKnAMGA%p}a5($zMx7TGvkBV{#AwiDW>?Q*P z0}uvP$*L&^XxTMj*pyuZIUyM9AMLr&NA9E3zvQ0M_#mK>6D zcXyY))`n1HadkLOI7Z!p{S#-uCAf;^Yf}EOOYHB zFCr-ETz4CwNygdPnK_&E3m+*(QYPGe)^L`lP!s9Ry=(8Mgw%F}SX zqQ+0S)oqPuw0*pIjt~&E`x_i%P-|;zph=My)R6g$i;HTzh>1&sNpcz`4^=30u|o(q+{e% z>@qavg$8SvO;k>Yf5PKXe%|wex>#*(Z5$8eyHBYMydKHOxE`@cW3mP5SpQHpb<@wh z6-lMoPw1syI*{bZcu_1-B-;GJ!DVX4FH3qFnCkfpP)8Ds TMl!r~00000NkvXXu0mjf9Q-`p literal 0 HcmV?d00001 From ff7fa3ef2e4488ec3619131d2602424853a95832 Mon Sep 17 00:00:00 2001 From: Jiyong Jung Date: Thu, 18 Jun 2026 01:17:19 +0900 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=ED=91=B8=EC=8B=9C=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20=EA=B6=8C=ED=95=9C=20=EC=9A=94=EC=B2=AD=20=ED=83=80?= =?UTF-8?q?=EC=9D=B4=EB=B0=8D=20=EC=A1=B0=EC=A0=95=20-=20#357?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../App/Sources/Reducer/AppCoordinator.swift | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/Projects/App/Sources/Reducer/AppCoordinator.swift b/Projects/App/Sources/Reducer/AppCoordinator.swift index 48920747..50a7359c 100644 --- a/Projects/App/Sources/Reducer/AppCoordinator.swift +++ b/Projects/App/Sources/Reducer/AppCoordinator.swift @@ -171,6 +171,10 @@ struct AppCoordinator { pushClient: pushClient, notificationClient: notificationClient ), + requestNotificationAuthorizationIfNeededEffect( + pushClient: pushClient, + notificationClient: notificationClient + ), subscribeTokenRefreshEffect( pushClient: pushClient, notificationClient: notificationClient @@ -348,7 +352,7 @@ private func registerFCMTokenEffect( // 1. 현재 권한 상태 확인 let settings = await UNUserNotificationCenter.current().notificationSettings() - // 이미 권한이 허용된 경우에만 등록 (notDetermined/denied는 온보딩 완료 시점에서 처리) + // 이미 권한이 허용된 경우에만 등록 (notDetermined는 별도 fallback/온보딩에서 처리) guard settings.authorizationStatus == .authorized else { return } // 3. APNS 등록 및 FCM 토큰 획득 @@ -364,6 +368,29 @@ private func registerFCMTokenEffect( } } +private func requestNotificationAuthorizationIfNeededEffect( + pushClient: PushClient, + notificationClient: NotificationClient +) -> Effect { + .run { send in + let settings = await UNUserNotificationCenter.current().notificationSettings() + guard settings.authorizationStatus == .notDetermined else { return } + + let granted = (try? await pushClient.requestAuthorization()) ?? false + guard granted else { return } + + await pushClient.registerForRemoteNotifications() + + guard let token = try? await pushClient.getFCMToken(), + let deviceId = await UIDevice.current.identifierForVendor?.uuidString else { + return + } + + try? await notificationClient.registerFCMToken(token, deviceId) + await send(.registerFCMTokenCompleted) + } +} + private func subscribeTokenRefreshEffect( pushClient: PushClient, notificationClient: NotificationClient From 393ed7cb7cb1c11b25ec3b39b4606bed1ee2faae Mon Sep 17 00:00:00 2001 From: Jiyong Jung Date: Thu, 18 Jun 2026 02:05:09 +0900 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=EB=8B=89=EB=84=A4=EC=9E=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=9D=B4=EB=AF=B8=EC=A7=80=EB=A5=BC=20?= =?UTF-8?q?=EC=9B=90=EB=B3=B8=20=EC=83=89=EC=83=81=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20-=20#357?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Projects/Feature/Settings/Sources/Settings/SettingsView.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/Projects/Feature/Settings/Sources/Settings/SettingsView.swift b/Projects/Feature/Settings/Sources/Settings/SettingsView.swift index 427397c0..fdb14a13 100644 --- a/Projects/Feature/Settings/Sources/Settings/SettingsView.swift +++ b/Projects/Feature/Settings/Sources/Settings/SettingsView.swift @@ -124,9 +124,7 @@ private extension SettingsView { } label: { Image.Icon.Symbol.edit .resizable() - .renderingMode(.template) .frame(width: 24, height: 24) - .foregroundStyle(Color.Gray.gray500) } .frame(width: 44, height: 44) }