[update] change storage key from modelId to modelName

This commit is contained in:
游薪渝(揽清) 2025-07-09 20:31:39 +08:00
parent cbe027a005
commit 3d2091bc24
5 changed files with 31 additions and 20 deletions

View File

@ -35,4 +35,4 @@ struct LocalModelListView: View {
Text(viewModel.errorMessage)
}
}
}
}

View File

@ -15,7 +15,7 @@ struct MainTabView: View {
@State private var showSettings = false
@State private var showWebView = false
@State private var webViewURL: URL?
@State private var navigateToSettings = false //
@State private var navigateToSettings = false
@StateObject private var modelListViewModel = TBModelListViewModel()
@StateObject private var localModelListViewModel = ModelListViewModel()
@State private var selectedTab: Int = 0
@ -132,6 +132,9 @@ struct MainTabView: View {
private var chatDestination: some View {
if let model = localModelListViewModel.selectedModel {
LLMChatView(modelInfo: model)
.navigationBarHidden(false)
.navigationBarTitleDisplayMode(.inline)
.toolbar(.hidden, for: .tabBar) // Hide tab bar in chat
} else if let history = selectedHistory {
let modelInfo = ModelInfo(
modelId: history.modelId,
@ -141,6 +144,9 @@ struct MainTabView: View {
isDownloaded: true
)
LLMChatView(modelInfo: modelInfo, history: history)
.navigationBarHidden(false)
.navigationBarTitleDisplayMode(.inline)
.toolbar(.hidden, for: .tabBar) // Hide tab bar in chat
} else {
EmptyView()
}
@ -148,13 +154,18 @@ struct MainTabView: View {
private var chatIsActiveBinding: Binding<Bool> {
Binding<Bool>(
get: { modelListViewModel.selectedModel != nil || selectedHistory != nil },
get: {
return localModelListViewModel.selectedModel != nil || selectedHistory != nil
},
set: { isActive in
if !isActive {
// Record usage when returning from chat
if let model = localModelListViewModel.selectedModel {
modelListViewModel.recordModelUsage(modelId: model.modelId)
localModelListViewModel.recordModelUsage(modelName: model.name)
}
modelListViewModel.selectedModel = nil
// Clear selections
localModelListViewModel.selectedModel = nil
selectedHistory = nil
}
}
@ -184,4 +195,4 @@ struct MainTabView: View {
UITabBar.appearance().standardAppearance = appearance
UITabBar.appearance().scrollEdgeAppearance = appearance
}
}
}

View File

@ -25,14 +25,14 @@ class ModelStorageManager {
}
}
func updateLastUsed(for modelId: String) {
func updateLastUsed(for modelName: String) {
var models = lastUsedModels
models[modelId] = Date()
models[modelName] = Date()
lastUsedModels = models
}
func getLastUsed(for modelId: String) -> Date? {
return lastUsedModels[modelId]
func getLastUsed(for modelName: String) -> Date? {
return lastUsedModels[modelName]
}
var downloadedModels: [String] {
@ -44,21 +44,21 @@ class ModelStorageManager {
}
}
func clearDownloadStatus(for modelId: String) {
func clearDownloadStatus(for modelName: String) {
var models = downloadedModels
models.removeAll { $0 == modelId }
models.removeAll { $0 == modelName }
downloadedModels = models
}
func isModelDownloaded(_ modelId: String) -> Bool {
downloadedModels.contains(modelId)
func isModelDownloaded(_ modelName: String) -> Bool {
downloadedModels.contains(modelName)
}
func markModelAsDownloaded(_ modelId: String) {
func markModelAsDownloaded(_ modelName: String) {
var models = downloadedModels
if !models.contains(modelId) {
models.append(modelId)
if !models.contains(modelName) {
models.append(modelName)
downloadedModels = models
}
}
}
}

View File

@ -293,4 +293,4 @@ class TBModelListViewModel: ObservableObject {
}
}
}
}
}

View File

@ -144,4 +144,4 @@ struct TBModelListView: View {
model.vendor?.localizedCaseInsensitiveContains(selectedVendor) ?? false
}
}
}
}