Skip to content

Commit 13b17ad

Browse files
committed
huge changes
1 parent a0ffc58 commit 13b17ad

10 files changed

+753
-290
lines changed

Django Files/Django_FilesApp.swift

+30-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,32 @@
88
import SwiftUI
99
import SwiftData
1010

11+
class SessionManager: ObservableObject {
12+
@Published var selectedSession: DjangoFilesSession?
13+
private let userDefaultsKey = "lastSelectedSessionURL"
14+
15+
func saveSelectedSession() {
16+
if let session = selectedSession {
17+
UserDefaults.standard.set(session.url, forKey: userDefaultsKey)
18+
}
19+
}
20+
21+
func loadLastSelectedSession(from sessions: [DjangoFilesSession]) {
22+
// Return if we already have a session loaded
23+
if selectedSession != nil { return }
24+
25+
if let lastSessionURL = UserDefaults.standard.string(forKey: userDefaultsKey) {
26+
selectedSession = sessions.first(where: { $0.url == lastSessionURL })
27+
} else if let defaultSession = sessions.first(where: { $0.defaultSession }) {
28+
// Fall back to any session marked as default
29+
selectedSession = defaultSession
30+
} else if let firstSession = sessions.first {
31+
// Fall back to the first available session
32+
selectedSession = firstSession
33+
}
34+
}
35+
}
36+
1137
@main
1238
struct Django_FilesApp: App {
1339
var sharedModelContainer: ModelContainer = {
@@ -22,6 +48,8 @@ struct Django_FilesApp: App {
2248
}
2349
}()
2450

51+
@StateObject private var sessionManager = SessionManager()
52+
2553
init() {
2654
// Handle reset arguments
2755
if CommandLine.arguments.contains("--DeleteAllData") {
@@ -55,7 +83,8 @@ struct Django_FilesApp: App {
5583

5684
var body: some Scene {
5785
WindowGroup {
58-
ContentView()
86+
// ContentView()
87+
TabViewWindow(sessionManager: sessionManager)
5988
}
6089
.modelContainer(sharedModelContainer)
6190
#if os(macOS)

Django Files/Models/DjangoFilesSession.swift

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ public final class DjangoFilesSession: Equatable {
1414
var defaultSession: Bool = false
1515
var token: String
1616
var auth: Bool = false
17+
var userID: Int?
18+
var username: String?
1719
@Transient var cookies: [HTTPCookie] = []
1820

1921
init() {

0 commit comments

Comments
 (0)