wip
This commit is contained in:
parent
5fe8762e1f
commit
50d64cf96b
|
@ -10,6 +10,7 @@ typealias DBStorable = Codable & FetchableRecord & Identifiable & PersistableRec
|
||||||
final class Database {
|
final class Database {
|
||||||
static let shared = Database()
|
static let shared = Database()
|
||||||
let dbQueue: DatabaseQueue
|
let dbQueue: DatabaseQueue
|
||||||
|
private var dbPath: String
|
||||||
|
|
||||||
private init() {
|
private init() {
|
||||||
do {
|
do {
|
||||||
|
@ -25,6 +26,7 @@ final class Database {
|
||||||
// Open or create the database
|
// Open or create the database
|
||||||
let databaseURL = directoryURL.appendingPathComponent("db.sqlite")
|
let databaseURL = directoryURL.appendingPathComponent("db.sqlite")
|
||||||
dbQueue = try DatabaseQueue(path: databaseURL.path, configuration: Database.config)
|
dbQueue = try DatabaseQueue(path: databaseURL.path, configuration: Database.config)
|
||||||
|
dbPath = databaseURL.path
|
||||||
|
|
||||||
// Some debug info
|
// Some debug info
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
@ -53,3 +55,17 @@ private extension Database {
|
||||||
return config
|
return config
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - flush all data for debug
|
||||||
|
#if DEBUG
|
||||||
|
extension Database {
|
||||||
|
func flushAllData() {
|
||||||
|
// nullable queue and remove db file
|
||||||
|
do {
|
||||||
|
try FileManager.default.removeItem(atPath: dbPath)
|
||||||
|
} catch {
|
||||||
|
print("Error: \(error)")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -193,3 +193,16 @@ private extension ClientsStore {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Remove all data for debug
|
||||||
|
#if DEBUG
|
||||||
|
extension ClientsStore {
|
||||||
|
func flushAllData() {
|
||||||
|
clients.forEach { $0.disconnect() }
|
||||||
|
clients.removeAll()
|
||||||
|
actualRosters.removeAll()
|
||||||
|
actualChats.removeAll()
|
||||||
|
ready = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -59,7 +59,7 @@ struct ChatsCreateScreenMain: View {
|
||||||
print("Tapped findChannel")
|
print("Tapped findChannel")
|
||||||
}
|
}
|
||||||
|
|
||||||
// for contacts list
|
// for contacts list (later)
|
||||||
// let rosters = store.state.rostersState.rosters.filter { !$0.locallyDeleted }
|
// let rosters = store.state.rostersState.rosters.filter { !$0.locallyDeleted }
|
||||||
// if rosters.isEmpty {
|
// if rosters.isEmpty {
|
||||||
// ChatsCreateRowSeparator()
|
// ChatsCreateRowSeparator()
|
||||||
|
|
|
@ -1,16 +1,26 @@
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct SettingsScreen: View {
|
struct SettingsScreen: View {
|
||||||
|
@EnvironmentObject var clientsStore: ClientsStore
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
ZStack {
|
ZStack {
|
||||||
// bg
|
// bg
|
||||||
Color.Material.Background.light
|
Color.Material.Background.light
|
||||||
.ignoresSafeArea()
|
.ignoresSafeArea()
|
||||||
|
|
||||||
// content
|
// debug buttons
|
||||||
Text("Soon!")
|
#if DEBUG
|
||||||
.font(.head1l)
|
// clean all data
|
||||||
|
Button {
|
||||||
|
clientsStore.flushAllData()
|
||||||
|
Database.shared.flushAllData()
|
||||||
|
} label: {
|
||||||
|
Text("Clean all (for test)")
|
||||||
|
.font(.title)
|
||||||
.foregroundColor(.Material.Elements.active)
|
.foregroundColor(.Material.Elements.active)
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue