8
8
import SwiftUI
9
9
import SwiftData
10
10
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
+
11
37
@main
12
38
struct Django_FilesApp : App {
13
39
var sharedModelContainer : ModelContainer = {
@@ -22,6 +48,8 @@ struct Django_FilesApp: App {
22
48
}
23
49
} ( )
24
50
51
+ @StateObject private var sessionManager = SessionManager ( )
52
+
25
53
init ( ) {
26
54
// Handle reset arguments
27
55
if CommandLine . arguments. contains ( " --DeleteAllData " ) {
@@ -55,7 +83,8 @@ struct Django_FilesApp: App {
55
83
56
84
var body : some Scene {
57
85
WindowGroup {
58
- ContentView ( )
86
+ // ContentView()
87
+ TabViewWindow ( sessionManager: sessionManager)
59
88
}
60
89
. modelContainer ( sharedModelContainer)
61
90
#if os(macOS)
0 commit comments