From 29bc657f72bf39fded677fdacb2851770826abe3 Mon Sep 17 00:00:00 2001 From: opficdev Date: Tue, 4 Aug 2026 21:09:18 +0900 Subject: [PATCH 1/3] =?UTF-8?q?chore:=20=EC=86=8C=EC=8A=A4=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9C=84=EC=B9=98=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/{PushNotification => }/PushNotificationItem.swift | 0 .../{PushNotification => }/PushNotificationListFeature.swift | 0 .../PushNotificationListFeatureDependencies.swift | 0 .../Sources/{PushNotification => }/PushNotificationListView.swift | 0 .../PushNotificationListViewCoordinator.swift | 0 .../PushNotificationQuery+Presentation.swift | 0 .../Sources/{PushNotification => }/View+Refreshable.swift | 0 .../Tests/{PushNotification => }/PushNotificationItemTests.swift | 0 .../{PushNotification => }/PushNotificationListFeatureTests.swift | 0 .../{PushNotification => }/PushNotificationListFixtures.swift | 0 .../PushNotificationListTestAssertions.swift | 0 .../{PushNotification => }/PushNotificationListTestSpies.swift | 0 .../{PushNotification => }/PushNotificationListTestSupport.swift | 0 13 files changed, 0 insertions(+), 0 deletions(-) rename Application/Presentation/NotificationTab/Sources/{PushNotification => }/PushNotificationItem.swift (100%) rename Application/Presentation/NotificationTab/Sources/{PushNotification => }/PushNotificationListFeature.swift (100%) rename Application/Presentation/NotificationTab/Sources/{PushNotification => }/PushNotificationListFeatureDependencies.swift (100%) rename Application/Presentation/NotificationTab/Sources/{PushNotification => }/PushNotificationListView.swift (100%) rename Application/Presentation/NotificationTab/Sources/{PushNotification => }/PushNotificationListViewCoordinator.swift (100%) rename Application/Presentation/NotificationTab/Sources/{PushNotification => }/PushNotificationQuery+Presentation.swift (100%) rename Application/Presentation/NotificationTab/Sources/{PushNotification => }/View+Refreshable.swift (100%) rename Application/Presentation/NotificationTab/Tests/{PushNotification => }/PushNotificationItemTests.swift (100%) rename Application/Presentation/NotificationTab/Tests/{PushNotification => }/PushNotificationListFeatureTests.swift (100%) rename Application/Presentation/NotificationTab/Tests/{PushNotification => }/PushNotificationListFixtures.swift (100%) rename Application/Presentation/NotificationTab/Tests/{PushNotification => }/PushNotificationListTestAssertions.swift (100%) rename Application/Presentation/NotificationTab/Tests/{PushNotification => }/PushNotificationListTestSpies.swift (100%) rename Application/Presentation/NotificationTab/Tests/{PushNotification => }/PushNotificationListTestSupport.swift (100%) diff --git a/Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationItem.swift b/Application/Presentation/NotificationTab/Sources/PushNotificationItem.swift similarity index 100% rename from Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationItem.swift rename to Application/Presentation/NotificationTab/Sources/PushNotificationItem.swift diff --git a/Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationListFeature.swift b/Application/Presentation/NotificationTab/Sources/PushNotificationListFeature.swift similarity index 100% rename from Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationListFeature.swift rename to Application/Presentation/NotificationTab/Sources/PushNotificationListFeature.swift diff --git a/Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationListFeatureDependencies.swift b/Application/Presentation/NotificationTab/Sources/PushNotificationListFeatureDependencies.swift similarity index 100% rename from Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationListFeatureDependencies.swift rename to Application/Presentation/NotificationTab/Sources/PushNotificationListFeatureDependencies.swift diff --git a/Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationListView.swift b/Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift similarity index 100% rename from Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationListView.swift rename to Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift diff --git a/Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationListViewCoordinator.swift b/Application/Presentation/NotificationTab/Sources/PushNotificationListViewCoordinator.swift similarity index 100% rename from Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationListViewCoordinator.swift rename to Application/Presentation/NotificationTab/Sources/PushNotificationListViewCoordinator.swift diff --git a/Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationQuery+Presentation.swift b/Application/Presentation/NotificationTab/Sources/PushNotificationQuery+Presentation.swift similarity index 100% rename from Application/Presentation/NotificationTab/Sources/PushNotification/PushNotificationQuery+Presentation.swift rename to Application/Presentation/NotificationTab/Sources/PushNotificationQuery+Presentation.swift diff --git a/Application/Presentation/NotificationTab/Sources/PushNotification/View+Refreshable.swift b/Application/Presentation/NotificationTab/Sources/View+Refreshable.swift similarity index 100% rename from Application/Presentation/NotificationTab/Sources/PushNotification/View+Refreshable.swift rename to Application/Presentation/NotificationTab/Sources/View+Refreshable.swift diff --git a/Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationItemTests.swift b/Application/Presentation/NotificationTab/Tests/PushNotificationItemTests.swift similarity index 100% rename from Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationItemTests.swift rename to Application/Presentation/NotificationTab/Tests/PushNotificationItemTests.swift diff --git a/Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListFeatureTests.swift b/Application/Presentation/NotificationTab/Tests/PushNotificationListFeatureTests.swift similarity index 100% rename from Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListFeatureTests.swift rename to Application/Presentation/NotificationTab/Tests/PushNotificationListFeatureTests.swift diff --git a/Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListFixtures.swift b/Application/Presentation/NotificationTab/Tests/PushNotificationListFixtures.swift similarity index 100% rename from Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListFixtures.swift rename to Application/Presentation/NotificationTab/Tests/PushNotificationListFixtures.swift diff --git a/Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListTestAssertions.swift b/Application/Presentation/NotificationTab/Tests/PushNotificationListTestAssertions.swift similarity index 100% rename from Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListTestAssertions.swift rename to Application/Presentation/NotificationTab/Tests/PushNotificationListTestAssertions.swift diff --git a/Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListTestSpies.swift b/Application/Presentation/NotificationTab/Tests/PushNotificationListTestSpies.swift similarity index 100% rename from Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListTestSpies.swift rename to Application/Presentation/NotificationTab/Tests/PushNotificationListTestSpies.swift diff --git a/Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListTestSupport.swift b/Application/Presentation/NotificationTab/Tests/PushNotificationListTestSupport.swift similarity index 100% rename from Application/Presentation/NotificationTab/Tests/PushNotification/PushNotificationListTestSupport.swift rename to Application/Presentation/NotificationTab/Tests/PushNotificationListTestSupport.swift From 0c8d4effca79cd32c08a3b803281f1129721838e Mon Sep 17 00:00:00 2001 From: opficdev Date: Tue, 4 Aug 2026 23:34:16 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=EB=AA=A8=EB=94=94=ED=8C=8C=EC=9D=B4?= =?UTF-8?q?=EC=96=B4=20=EC=88=9C=EC=84=9C=EB=A5=BC=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=ED=95=98=EC=97=AC=20=ED=97=A4=EB=8D=94=EA=B0=80=20=EA=B0=84?= =?UTF-8?q?=ED=97=90=EC=A0=81=EC=9C=BC=EB=A1=9C=20=EB=B3=B4=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=ED=98=84=EC=83=81=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/PushNotificationListView.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift b/Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift index d93f6f64..0b3cac5e 100644 --- a/Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift +++ b/Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift @@ -31,20 +31,20 @@ public struct PushNotificationListView: View { public var body: some View { NavigationStack { notificationListContent + .listStyle(.plain) .background(Color(.systemGroupedBackground)) .background(NavigationBarConfigurator(alwaysVisible: true)) - .onScrollOffsetChange { offset in - guard isScrollTrackingEnabled else { return } - headerOffset = max(0, -offset) - } - .safeAreaInset(edge: .top) { safeAreaHeader } .refreshable(isEnabled: PullToRefreshAvailability.isEnabled) { let task = store.send(.view(.refresh)) await task.finish() store.send(.view(.startObserving)) } + .onScrollOffsetChange { offset in + guard isScrollTrackingEnabled else { return } + headerOffset = max(0, -offset) + } + .safeAreaInset(edge: .top) { safeAreaHeader } .navigationTitle(String(localized: "nav_push_notifications")) - .listStyle(.plain) } .prominentAlert(store, state: \.alert, action: \.alert) .sheet(item: sheetStore) { store in From ff51640003f5bcae9c5d727647532406cabd5b96 Mon Sep 17 00:00:00 2001 From: opficdev Date: Tue, 4 Aug 2026 23:38:47 +0900 Subject: [PATCH 3/3] =?UTF-8?q?refactor:=20iOS=2017=EC=97=90=EC=84=9C?= =?UTF-8?q?=EC=9D=98=20=ED=97=A4=EB=8D=94=EC=97=90=20ScrollView=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/PushNotificationListView.swift | 39 +++++++------------ 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift b/Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift index 0b3cac5e..b3488f5b 100644 --- a/Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift +++ b/Application/Presentation/NotificationTab/Sources/PushNotificationListView.swift @@ -144,7 +144,20 @@ public struct PushNotificationListView: View { private var safeAreaHeader: some View { VStack(spacing: 4) { - headerView + ScrollView(.horizontal) { + headerContent + } + .scrollIndicators(.never) + .contentMargins(.leading, 16, for: .scrollContent) + .frame(maxWidth: .infinity, alignment: .leading) + .frame(height: headerHeight) + .onAppear { + headerOffset = 0 + isScrollTrackingEnabled = false + DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { + isScrollTrackingEnabled = true + } + } if #unavailable(iOS 26) { Divider() .padding(.horizontal, -16) @@ -160,30 +173,6 @@ public struct PushNotificationListView: View { .offset(y: headerOffset) } - private var headerView: some View { - Group { - if #available(iOS 18.0, *) { - ScrollView(.horizontal) { - headerContent - } - .scrollIndicators(.never) - .contentMargins(.leading, 16, for: .scrollContent) - } else { - headerContent - .padding(.leading, 16) - } - } - .frame(maxWidth: .infinity, alignment: .leading) - .frame(height: headerHeight) - .onAppear { - headerOffset = 0 - isScrollTrackingEnabled = false - DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { - isScrollTrackingEnabled = true - } - } - } - private var headerContent: some View { HStack(spacing: 8) { if 0 < store.appliedFilterCount {