diff --git a/src/main/kotlin/ui/screens/SecVaultScreen.kt b/src/main/kotlin/ui/screens/SecVaultScreen.kt index c960891..bfcccc1 100644 --- a/src/main/kotlin/ui/screens/SecVaultScreen.kt +++ b/src/main/kotlin/ui/screens/SecVaultScreen.kt @@ -26,6 +26,10 @@ class SecVaultScreen : Screen { val secVaultState by screenModel.secVaultState.collectAsState() val toaster = rememberToasterState() + LaunchedEffect(Unit) { + screenModel.init() + } + Toaster( state = toaster, alignment = Alignment.TopEnd, diff --git a/src/main/kotlin/viewmodel/SecVaultScreenModel.kt b/src/main/kotlin/viewmodel/SecVaultScreenModel.kt index d61bafb..7749c13 100644 --- a/src/main/kotlin/viewmodel/SecVaultScreenModel.kt +++ b/src/main/kotlin/viewmodel/SecVaultScreenModel.kt @@ -18,7 +18,7 @@ import repository.password.projection.PasswordSummary class SecVaultScreenModel( private val passwordRepository: PasswordRepository, - dispatcher: CoroutineDispatcher = Dispatchers.IO + private val dispatcher: CoroutineDispatcher = Dispatchers.IO ) : ScreenModel { private val _secVaultState = MutableStateFlow>(UiState.Idle) @@ -39,7 +39,19 @@ class SecVaultScreenModel( private val _passwordItems = MutableStateFlow>(emptyList()) val passwordItems: StateFlow> = _passwordItems.asStateFlow() - init { + fun selectMenuItem(item: DefaultMenuItem) { + _selectedMenuItem.value = item + } + + fun selectSortItem(item: PasswordSort) { + _selectedSortItem.value = item + } + + fun clearError() { + _secVaultState.value = UiState.Idle + } + + fun init() { screenModelScope.launch(dispatcher) { _secVaultState.value = UiState.Loading loadPasswords(PasswordSort.NAME) @@ -59,18 +71,6 @@ class SecVaultScreenModel( } } - fun selectMenuItem(item: DefaultMenuItem) { - _selectedMenuItem.value = item - } - - fun selectSortItem(item: PasswordSort) { - _selectedSortItem.value = item - } - - fun clearError() { - _secVaultState.value = UiState.Idle - } - private suspend fun loadPasswords(sort: PasswordSort) { _passwordItems.value = when (val passwords = passwordRepository.findSummaries(sort)) { is Result.Success -> {