Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 0 additions & 54 deletions TablePro/Extensions/UserDefaults+RecentDatabases.swift

This file was deleted.

21 changes: 0 additions & 21 deletions TablePro/ViewModels/DatabaseSwitcherViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ final class DatabaseSwitcherViewModel {
// MARK: - Published State

var databases: [DatabaseMetadata] = []
var recentDatabases: [String] = []
var searchText = ""
var selectedDatabase: String?
var isLoading = false
Expand Down Expand Up @@ -54,19 +53,6 @@ final class DatabaseSwitcherViewModel {
}
}

var recentDatabaseMetadata: [DatabaseMetadata] {
recentDatabases.compactMap { dbName in
databases.first { $0.name == dbName }
}
}

var allDatabases: [DatabaseMetadata] {
// Filter out recent databases from "all" list
filteredDatabases.filter { db in
!recentDatabases.contains(db.name)
}
}

// MARK: - Initialization

init(
Expand All @@ -78,7 +64,6 @@ final class DatabaseSwitcherViewModel {
self.currentSchema = currentSchema
self.databaseType = databaseType
self.mode = PluginManager.shared.supportsSchemaSwitching(for: databaseType) ? .schema : .database
self.recentDatabases = UserDefaults.standard.recentDatabases(for: connectionId)
}

// MARK: - Public Methods
Expand Down Expand Up @@ -152,12 +137,6 @@ final class DatabaseSwitcherViewModel {
try await driver.createDatabase(name: name, charset: charset, collation: collation)
}

/// Track database access
func trackAccess(database: String) {
UserDefaults.standard.trackDatabaseAccess(database, for: connectionId)
recentDatabases = UserDefaults.standard.recentDatabases(for: connectionId)
}

// MARK: - Private Methods

private func preselectDatabase() {
Expand Down
37 changes: 3 additions & 34 deletions TablePro/Views/DatabaseSwitcher/DatabaseSwitcherSheet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -192,36 +192,8 @@ struct DatabaseSwitcherSheet: View {
private var databaseList: some View {
ScrollViewReader { proxy in
List(selection: $viewModel.selectedDatabase) {
// Recent section
if !viewModel.recentDatabaseMetadata.isEmpty {
Section {
ForEach(viewModel.recentDatabaseMetadata) { db in
databaseRow(db)
}
} header: {
Text("RECENT")
.font(
.system(size: ThemeEngine.shared.activeTheme.typography.caption, weight: .semibold)
)
.foregroundStyle(.secondary)
}
}

// All databases
Section {
ForEach(viewModel.allDatabases) { db in
databaseRow(db)
}
} header: {
if !viewModel.recentDatabaseMetadata.isEmpty {
Text(isSchemaMode
? String(localized: "ALL SCHEMAS")
: String(localized: "ALL DATABASES"))
.font(
.system(size: ThemeEngine.shared.activeTheme.typography.caption, weight: .semibold)
)
.foregroundStyle(.secondary)
}
ForEach(viewModel.filteredDatabases) { db in
databaseRow(db)
}
}
.listStyle(.sidebar)
Expand Down Expand Up @@ -403,7 +375,7 @@ struct DatabaseSwitcherSheet: View {
// MARK: - Actions

private func moveSelection(up: Bool) {
let allDbs = viewModel.recentDatabaseMetadata + viewModel.allDatabases
let allDbs = viewModel.filteredDatabases
guard !allDbs.isEmpty else { return }

// Defer state update to avoid "Publishing changes from within view updates" warning
Expand Down Expand Up @@ -433,9 +405,6 @@ struct DatabaseSwitcherSheet: View {
return
}

// Track access
viewModel.trackAccess(database: database)

// Call appropriate callback
if viewModel.isSchemaMode, PluginManager.shared.supportsSchemaSwitching(for: databaseType), let onSelectSchema {
onSelectSchema(database)
Expand Down
Loading