Skip to content

Commit 1914ff2

Browse files
committed
[BOOK-367] feat: 홈, 내서재에서 로그인 세션 만료 에러 대응
1 parent 24954eb commit 1914ff2

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomePresenter.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import androidx.compose.runtime.mutableStateOf
66
import androidx.compose.runtime.rememberCoroutineScope
77
import androidx.compose.runtime.setValue
88
import com.ninecraft.booket.core.common.analytics.AnalyticsHelper
9+
import com.ninecraft.booket.core.common.utils.handleException
910
import com.ninecraft.booket.core.data.api.repository.AuthRepository
1011
import com.ninecraft.booket.core.data.api.repository.BookRepository
1112
import com.ninecraft.booket.core.model.RecentBookModel
1213
import com.ninecraft.booket.core.model.UserState
1314
import com.ninecraft.booket.feature.screens.BookDetailScreen
1415
import com.ninecraft.booket.feature.screens.BookSearchScreen
1516
import com.ninecraft.booket.feature.screens.HomeScreen
17+
import com.ninecraft.booket.feature.screens.LoginScreen
1618
import com.ninecraft.booket.feature.screens.RecordScreen
1719
import com.ninecraft.booket.feature.screens.SettingsScreen
1820
import com.skydoves.compose.effects.RememberedEffect
@@ -56,6 +58,14 @@ class HomePresenter @AssistedInject constructor(
5658
recentBooks = result.recentBooks.toPersistentList()
5759
}.onFailure { exception ->
5860
uiState = UiState.Error(exception)
61+
62+
handleException(
63+
exception = exception,
64+
onError = {},
65+
onLoginRequired = {
66+
navigator.resetRoot(LoginScreen())
67+
},
68+
)
5969
}
6070
}
6171
}

feature/library/src/main/kotlin/com/ninecraft/booket/feature/library/LibraryPresenter.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.compose.runtime.rememberCoroutineScope
88
import androidx.compose.runtime.setValue
99
import com.ninecraft.booket.core.common.analytics.AnalyticsHelper
1010
import com.ninecraft.booket.core.common.utils.UiText
11+
import com.ninecraft.booket.core.common.utils.handleException
1112
import com.ninecraft.booket.core.data.api.repository.AuthRepository
1213
import com.ninecraft.booket.core.data.api.repository.BookRepository
1314
import com.ninecraft.booket.core.model.LibraryBookSummaryModel
@@ -16,6 +17,7 @@ import com.ninecraft.booket.core.ui.component.FooterState
1617
import com.ninecraft.booket.feature.screens.BookDetailScreen
1718
import com.ninecraft.booket.feature.screens.LibraryScreen
1819
import com.ninecraft.booket.feature.screens.LibrarySearchScreen
20+
import com.ninecraft.booket.feature.screens.LoginScreen
1921
import com.ninecraft.booket.feature.screens.SettingsScreen
2022
import com.ninecraft.booket.feature.screens.extensions.redirectToLogin
2123
import com.orhanobut.logger.Logger
@@ -105,6 +107,16 @@ class LibraryPresenter @AssistedInject constructor(
105107
} else {
106108
footerState = FooterState.Error(errorMessage)
107109
}
110+
111+
if (userState !is UserState.Guest) {
112+
handleException(
113+
exception = exception,
114+
onError = {},
115+
onLoginRequired = {
116+
navigator.resetRoot(LoginScreen())
117+
},
118+
)
119+
}
108120
}
109121
}
110122
}

0 commit comments

Comments
 (0)