From 61060ddcf19fc3cad3e13bb92fdad2b1f6261ee2 Mon Sep 17 00:00:00 2001 From: Book-on Date: Sun, 13 Sep 2026 00:40:13 +0900 Subject: [PATCH] =?UTF-8?q?fix:[#174]=20=EB=8F=84=EC=84=9C=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20=EC=9D=B4=EC=A0=84=20=ED=99=94=EB=A9=B4=20=EB=B3=B5?= =?UTF-8?q?=EA=B7=80=20=EA=B2=BD=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Utilities/AppShellView.swift | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Projects/Feature/Sources/Utilities/AppShellView.swift b/Projects/Feature/Sources/Utilities/AppShellView.swift index eba9578..c2998ef 100644 --- a/Projects/Feature/Sources/Utilities/AppShellView.swift +++ b/Projects/Feature/Sources/Utilities/AppShellView.swift @@ -26,6 +26,7 @@ public struct AppShellView: View { @State private var selectedTab: BottomTabBar.Item = .home @State private var destination: Destination? + @State private var previousDestination: Destination? private let onLogout: () -> Void public init(onLogout: @escaping () -> Void = {}) { @@ -46,14 +47,14 @@ public struct AppShellView: View { onShowNotifications: { destination = .notifications }, onShowNotices: { destination = .notices }, onShowNewArrivals: { destination = .newArrivals }, - onShowBookDetail: { destination = .bookDetail($0) } + onShowBookDetail: showBookDetail ) case .ranking: RankingView(onSelectTab: selectTab) case .library: LibraryView( onSelectTab: selectTab, - onShowBookDetail: { destination = .bookDetail($0) } + onShowBookDetail: showBookDetail ) case .my: MyView( @@ -83,7 +84,7 @@ public struct AppShellView: View { switch destination { case .search: SearchView( - onShowBookDetail: { self.destination = .bookDetail($0) }, + onShowBookDetail: showBookDetail, showsDismissButton: true, onDismiss: dismissDestination ) @@ -94,9 +95,9 @@ public struct AppShellView: View { case .loanHistory: LoanHistoryView(onBack: dismissDestination) case .newArrivals: - NewArrivalsView(showsDismissButton: true, onDismiss: dismissDestination, onShowBookDetail: { self.destination = .bookDetail($0) }) + NewArrivalsView(showsDismissButton: true, onDismiss: dismissDestination, onShowBookDetail: showBookDetail) case let .bookDetail(bookId): - BookDetailView(bookId: bookId, onBack: dismissDestination) + BookDetailView(bookId: bookId, onBack: dismissBookDetail) case .passwordReset: PasswordResetView( onBack: dismissDestination, @@ -113,6 +114,17 @@ public struct AppShellView: View { private func dismissDestination() { destination = nil + previousDestination = nil + } + + private func showBookDetail(_ bookId: Int) { + previousDestination = destination + destination = .bookDetail(bookId) + } + + private func dismissBookDetail() { + destination = previousDestination + previousDestination = nil } }