Refactored RepositoryOpenViewModel to fix file system watch not working
This commit is contained in:
parent
8b17d68db4
commit
1b4b75d75b
@ -94,7 +94,7 @@ fun AppTab(
|
|||||||
|
|
||||||
is RepositorySelectionStatus.Open -> {
|
is RepositorySelectionStatus.Open -> {
|
||||||
RepositoryOpenPage(
|
RepositoryOpenPage(
|
||||||
repositoryOpenViewModel = tabViewModel.repositoryOpenViewModel,
|
repositoryOpenViewModel = repositorySelectionStatusValue.viewModel,
|
||||||
onShowSettingsDialog = { showSettingsDialog = true },
|
onShowSettingsDialog = { showSettingsDialog = true },
|
||||||
onShowCloneDialog = { showCloneDialog = true },
|
onShowCloneDialog = { showCloneDialog = true },
|
||||||
)
|
)
|
||||||
|
@ -75,8 +75,6 @@ class TabViewModel @Inject constructor(
|
|||||||
val errorsManager: ErrorsManager = tabState.errorsManager
|
val errorsManager: ErrorsManager = tabState.errorsManager
|
||||||
val selectedItem: StateFlow<SelectedItem> = tabState.selectedItem
|
val selectedItem: StateFlow<SelectedItem> = tabState.selectedItem
|
||||||
|
|
||||||
val repositoryOpenViewModel: RepositoryOpenViewModel = repositoryOpenViewModelProvider.get()
|
|
||||||
|
|
||||||
private val _repositorySelectionStatus = MutableStateFlow<RepositorySelectionStatus>(RepositorySelectionStatus.None)
|
private val _repositorySelectionStatus = MutableStateFlow<RepositorySelectionStatus>(RepositorySelectionStatus.None)
|
||||||
val repositorySelectionStatus: StateFlow<RepositorySelectionStatus>
|
val repositorySelectionStatus: StateFlow<RepositorySelectionStatus>
|
||||||
get() = _repositorySelectionStatus
|
get() = _repositorySelectionStatus
|
||||||
@ -115,7 +113,6 @@ class TabViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
repository.workTree // test if repository is valid
|
repository.workTree // test if repository is valid
|
||||||
_repositorySelectionStatus.value = RepositorySelectionStatus.Open(repository)
|
|
||||||
|
|
||||||
val path = if (directory.name == ".git") {
|
val path = if (directory.name == ".git") {
|
||||||
directory.parent
|
directory.parent
|
||||||
@ -126,6 +123,9 @@ class TabViewModel @Inject constructor(
|
|||||||
|
|
||||||
val git = Git(repository)
|
val git = Git(repository)
|
||||||
tabState.initGit(git)
|
tabState.initGit(git)
|
||||||
|
|
||||||
|
_repositorySelectionStatus.value = RepositorySelectionStatus.Open(repositoryOpenViewModelProvider.get())
|
||||||
|
|
||||||
tabState.refreshData(RefreshType.ALL_DATA)
|
tabState.refreshData(RefreshType.ALL_DATA)
|
||||||
} catch (ex: Exception) {
|
} catch (ex: Exception) {
|
||||||
onRepositoryChanged(null)
|
onRepositoryChanged(null)
|
||||||
@ -196,5 +196,5 @@ class TabViewModel @Inject constructor(
|
|||||||
sealed class RepositorySelectionStatus {
|
sealed class RepositorySelectionStatus {
|
||||||
data object None : RepositorySelectionStatus()
|
data object None : RepositorySelectionStatus()
|
||||||
data class Opening(val path: String) : RepositorySelectionStatus()
|
data class Opening(val path: String) : RepositorySelectionStatus()
|
||||||
data class Open(val repository: Repository) : RepositorySelectionStatus()
|
data class Open(val viewModel: RepositoryOpenViewModel) : RepositorySelectionStatus()
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user