@@ -35,7 +35,9 @@ import androidx.paging.compose.collectAsLazyPagingItems
3535import androidx.paging.compose.itemKey
3636import com.neki.android.core.designsystem.ui.theme.NekiTheme
3737import com.neki.android.core.model.Photo
38+ import com.neki.android.core.model.SortOrder
3839import com.neki.android.core.ui.component.DoubleButtonOptionBottomSheet
40+ import com.neki.android.feature.archive.api.ArchiveNavKey
3941import com.neki.android.core.ui.component.LoadingDialog
4042import com.neki.android.core.ui.compose.collectWithLifecycle
4143import com.neki.android.core.ui.toast.NekiToast
@@ -61,7 +63,7 @@ import timber.log.Timber
6163internal fun AlbumDetailRoute (
6264 viewModel : AlbumDetailViewModel ,
6365 navigateBack : () -> Unit ,
64- navigateToPhotoDetail : (Photo ) -> Unit ,
66+ navigateToPhotoDetail : (ArchiveNavKey . PhotoDetail ) -> Unit ,
6567) {
6668 val uiState by viewModel.store.uiState.collectAsStateWithLifecycle()
6769 val pagingItems = viewModel.photoPagingData.collectAsLazyPagingItems()
@@ -78,7 +80,18 @@ internal fun AlbumDetailRoute(
7880 viewModel.store.sideEffects.collectWithLifecycle { sideEffect ->
7981 when (sideEffect) {
8082 AlbumDetailSideEffect .NavigateBack -> navigateBack()
81- is AlbumDetailSideEffect .NavigateToPhotoDetail -> navigateToPhotoDetail(sideEffect.photo)
83+ is AlbumDetailSideEffect .NavigateToPhotoDetail -> {
84+ navigateToPhotoDetail(
85+ ArchiveNavKey .PhotoDetail (
86+ photos = pagingItems.itemSnapshotList.items,
87+ initialIndex = sideEffect.index,
88+ hasNext = ! pagingItems.loadState.append.endOfPaginationReached,
89+ folderId = if (uiState.isFavoriteAlbum) null else viewModel.albumId,
90+ sortOrder = SortOrder .DESC ,
91+ isFavoriteOnly = uiState.isFavoriteAlbum,
92+ ),
93+ )
94+ }
8295 is AlbumDetailSideEffect .ShowToastMessage -> {
8396 nekiToast.showToast(text = sideEffect.message)
8497 }
@@ -251,8 +264,8 @@ internal fun AlbumDetailContent(
251264 photo = photo,
252265 isSelected = isSelected,
253266 isSelectMode = uiState.selectMode == SelectMode .SELECTING ,
254- onClickItem = { onIntent(AlbumDetailIntent .ClickPhotoItem (photo)) },
255- onClickSelect = { onIntent(AlbumDetailIntent .ClickPhotoItem (photo)) },
267+ onClickItem = { onIntent(AlbumDetailIntent .ClickPhotoItem (photo, index )) },
268+ onClickSelect = { onIntent(AlbumDetailIntent .ClickPhotoItem (photo, index )) },
256269 onClickFavorite = { onIntent(AlbumDetailIntent .ClickFavoriteIcon (photo)) },
257270 )
258271 }
0 commit comments