@@ -81,52 +81,54 @@ class BookDetailPresenter @AssistedInject constructor(
8181 var sideEffect by rememberRetained { mutableStateOf<BookDetailSideEffect ?>(null ) }
8282
8383 @Suppress(" TooGenericExceptionCaught" )
84- suspend fun initialLoad () {
84+ fun initialLoad () {
8585 uiState = UiState .Loading
8686
87- try {
88- coroutineScope {
89- val bookDetailDef = async { bookRepository.getBookDetail(screen.isbn13).getOrThrow() }
90- val seedsDef = async { bookRepository.getSeedsStats(screen.userBookId).getOrThrow() }
91- val readingRecordsDef = async {
92- recordRepository.getReadingRecords(
93- userBookId = screen.userBookId,
94- sort = currentRecordSort.value,
95- page = START_INDEX ,
96- size = PAGE_SIZE ,
97- ).getOrThrow()
98- }
99- val detail = bookDetailDef.await()
100- val seeds = seedsDef.await()
101- val records = readingRecordsDef.await()
87+ scope.launch {
88+ try {
89+ coroutineScope {
90+ val bookDetailDeferred = async { bookRepository.getBookDetail(screen.isbn13).getOrThrow() }
91+ val seedsDeferred = async { bookRepository.getSeedsStats(screen.userBookId).getOrThrow() }
92+ val readingRecordsDeferred = async {
93+ recordRepository.getReadingRecords(
94+ userBookId = screen.userBookId,
95+ sort = currentRecordSort.value,
96+ page = START_INDEX ,
97+ size = PAGE_SIZE ,
98+ ).getOrThrow()
99+ }
100+ val detail = bookDetailDeferred.await()
101+ val seeds = seedsDeferred.await()
102+ val records = readingRecordsDeferred.await()
102103
103- bookDetail = detail
104- currentBookStatus = BookStatus .fromValue(detail.userBookStatus) ? : BookStatus .BEFORE_READING
105- selectedBookStatus = currentBookStatus
106- seedsStates = seeds.categories.toImmutableList()
107- readingRecords = records.readingRecords.toPersistentList()
108- readingRecordsTotalCount = records.totalResults
104+ bookDetail = detail
105+ currentBookStatus = BookStatus .fromValue(detail.userBookStatus) ? : BookStatus .BEFORE_READING
106+ selectedBookStatus = currentBookStatus
107+ seedsStates = seeds.categories.toImmutableList()
108+ readingRecords = records.readingRecords.toPersistentList()
109+ readingRecordsTotalCount = records.totalResults
109110
110- isLastPage = records.lastPage
111- currentStartIndex = START_INDEX
111+ isLastPage = records.lastPage
112+ currentStartIndex = START_INDEX
112113
113- uiState = UiState .Success
114- }
115- } catch (e: Throwable ) {
116- uiState = UiState .Error (e)
114+ uiState = UiState .Success
115+ }
116+ } catch (e: Throwable ) {
117+ uiState = UiState .Error (e)
117118
118- val handleErrorMessage = { message: String ->
119- Logger .e(message)
120- sideEffect = BookDetailSideEffect .ShowToast (message)
121- }
119+ val handleErrorMessage = { message: String ->
120+ Logger .e(message)
121+ sideEffect = BookDetailSideEffect .ShowToast (message)
122+ }
122123
123- handleException(
124- exception = e,
125- onError = handleErrorMessage,
126- onLoginRequired = {
127- navigator.resetRoot(LoginScreen )
128- },
129- )
124+ handleException(
125+ exception = e,
126+ onError = handleErrorMessage,
127+ onLoginRequired = {
128+ navigator.resetRoot(LoginScreen )
129+ },
130+ )
131+ }
130132 }
131133 }
132134
0 commit comments