From b6ee242c14adb9c6ee53cbf941210c1098fdcc09 Mon Sep 17 00:00:00 2001 From: Chris Lemaire Date: Fri, 16 Feb 2024 17:47:54 +0100 Subject: [PATCH] [github] Fix viewed/not viewed markers not showing for single commit PR GitOrigin-RevId: 489609ebf44f56d0ecd67c1e247b524a182faad6 --- .../ui/details/model/GHPRChangeListViewModel.kt | 10 ++++------ .../ui/details/model/impl/GHPRChangesViewModel.kt | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/details/model/GHPRChangeListViewModel.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/details/model/GHPRChangeListViewModel.kt index a424482d8ac6..0d53dd9c9fc4 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/details/model/GHPRChangeListViewModel.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/details/model/GHPRChangeListViewModel.kt @@ -2,10 +2,7 @@ package org.jetbrains.plugins.github.pullrequest.ui.details.model import com.intellij.collaboration.async.values -import com.intellij.collaboration.ui.codereview.details.model.CodeReviewChangeDetails -import com.intellij.collaboration.ui.codereview.details.model.CodeReviewChangeList -import com.intellij.collaboration.ui.codereview.details.model.CodeReviewChangeListViewModel -import com.intellij.collaboration.ui.codereview.details.model.CodeReviewChangeListViewModelBase +import com.intellij.collaboration.ui.codereview.details.model.* import com.intellij.collaboration.util.RefComparisonChange import com.intellij.collaboration.util.filePath import com.intellij.openapi.actionSystem.DataKey @@ -40,6 +37,7 @@ internal class GHPRChangeListViewModelImpl( override val project: Project, private val dataContext: GHPRDataContext, private val dataProvider: GHPRDataProvider, + changes: CodeReviewChangesContainer, changeList: CodeReviewChangeList ) : GHPRChangeListViewModel, CodeReviewChangeListViewModelBase(parentCs, changeList) { private val repository: GitRepository get() = dataContext.repositoryDataService.remoteCoordinates.repository @@ -47,12 +45,12 @@ internal class GHPRChangeListViewModelImpl( private val _isUpdating = MutableStateFlow(false) override val isUpdating: StateFlow = _isUpdating.asStateFlow() - override val isOnLatest: Boolean = changeList.commitSha == null + override val isOnLatest: Boolean = changeList.commitSha == null || changes.commits.size == 1 private val viewedStateData = dataProvider.viewedStateData override val detailsByChange: StateFlow> = - if (changeList.commitSha == null) { + if (isOnLatest) { createDetailsByChangeFlow().stateIn(cs, SharingStarted.Eagerly, emptyMap()) } else { diff --git a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/details/model/impl/GHPRChangesViewModel.kt b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/details/model/impl/GHPRChangesViewModel.kt index c592a79289be..7344175cbd67 100644 --- a/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/details/model/impl/GHPRChangesViewModel.kt +++ b/plugins/github/src/org/jetbrains/plugins/github/pullrequest/ui/details/model/impl/GHPRChangesViewModel.kt @@ -101,8 +101,8 @@ internal class GHPRChangesViewModelImpl( } } - private val delegate = CodeReviewChangesViewModelDelegate(cs, changesContainer) { changeList -> - GHPRChangeListViewModelImpl(this, project, dataContext, dataProvider, changeList).also { vm -> + private val delegate = CodeReviewChangesViewModelDelegate(cs, changesContainer) { changes, changeList -> + GHPRChangeListViewModelImpl(this, project, dataContext, dataProvider, changes, changeList).also { vm -> launch { isUpdatingChanges.collect { vm.setUpdating(it)