UI: tracks user's first success on importing a model

This commit is contained in:
Han Yin 2025-08-30 23:01:03 -07:00
parent c87ff9c1b3
commit f1269f4d39
4 changed files with 11 additions and 4 deletions

View File

@ -96,7 +96,8 @@ fun AppContent(
// App core states
val engineState by mainViewModel.engineState.collectAsState()
val showUserOnboarding by mainViewModel.showUserOnboarding.collectAsState()
val showModelImportTooltip by mainViewModel.showModelImportTooltip.collectAsState()
val showChatTooltip by mainViewModel.showModelImportTooltip.collectAsState()
// Model state
val modelScreenUiMode by modelsViewModel.modelScreenUiMode.collectAsState()
@ -324,7 +325,7 @@ fun AppContent(
toggleMenu = modelsViewModel::toggleFilterMenu
),
importing = BottomBarConfig.Models.Managing.ImportConfig(
showTooltip = showUserOnboarding,
showTooltip = showModelImportTooltip,
isMenuVisible = showImportModelMenu,
toggleMenu = { show -> modelsManagementViewModel.toggleImportMenu(show) },
importFromLocal = {
@ -481,6 +482,10 @@ fun AppContent(
navigationActions.navigateToModelLoading()
}
},
onFirstModelImportSuccess =
if (showModelImportTooltip) {
{ mainViewModel.waiveModelImportTooltip() }
} else null,
onScaffoldEvent = handleScaffoldEvent,
modelsViewModel = modelsViewModel,
managementViewModel = modelsManagementViewModel,

View File

@ -82,6 +82,7 @@ fun ModelsManagementAndDeletingScreen(
filteredModels: List<ModelInfo>?,
activeFiltersCount: Int,
isDeleting: Boolean,
onFirstModelImportSuccess: (() -> Unit)?,
onScaffoldEvent: (ScaffoldEvent) -> Unit,
modelsViewModel: ModelsViewModel,
managementViewModel: ModelsManagementViewModel,
@ -212,7 +213,7 @@ fun ModelsManagementAndDeletingScreen(
message = "Imported model: ${state.model.name}"
)
)
onFirstModelImportSuccess?.invoke()
managementViewModel.resetManagementState()
}
}

View File

@ -34,6 +34,7 @@ import com.example.llama.viewmodel.PreselectedModelToRun.RamWarning
@Composable
fun ModelsScreen(
onConfirmSelection: (ModelInfo, RamWarning) -> Unit,
onFirstModelImportSuccess: (() -> Unit)?,
onScaffoldEvent: (ScaffoldEvent) -> Unit,
modelsViewModel: ModelsViewModel,
managementViewModel: ModelsManagementViewModel,
@ -98,6 +99,7 @@ fun ModelsScreen(
isDeleting = currentMode == ModelScreenUiMode.DELETING,
onScaffoldEvent = onScaffoldEvent,
activeFiltersCount = activeFiltersCount,
onFirstModelImportSuccess = onFirstModelImportSuccess,
modelsViewModel = modelsViewModel,
managementViewModel = managementViewModel,
)

View File

@ -51,7 +51,6 @@ class MainViewModel @Inject constructor (
}
fun waiveModelImportTooltip() {
android.util.Log.w("JOJO", "WAIVE IMPORT TOOLTIP!")
viewModelScope.launch {
appPreferences.setUserHasImportedFirstModel(true)
}