79401588

Date: 2025-01-31 01:17:29
Score: 0.5
Natty:
Report link

import SwiftData

@Model class UserSession { var uid: String var lastLogin: Date

init(uid: String) {
    self.uid = uid
    self.lastLogin = Date()
}

}

mport SwiftUI import SwiftData

struct ContentView: View { @Query(sort: \UserSession.lastLogin, order: .reverse) private var sessions: [UserSession]

var body: some View {
    if let lastSession = sessions.first {
        HomeView(session: lastSession)  // Auto-login if session exists
    } else {
        LoginView()  // Show login if no session found
    }
}

}

import SwiftUI import SwiftData

struct LoginView: View { @Environment(.modelContext) private var modelContext

var body: some View {
    Button("Login") {
        let uid = "123456"  // Replace with actual user ID
        let session = UserSession(uid: uid)
        modelContext.insert(session)  // Save session to SwiftData
    }
}

}

import SwiftUI import SwiftData

struct HomeView: View { let session: UserSession

var body: some View {
    VStack {
        Text("Welcome back, \(session.uid)!")
        Text("Last login: \(session.lastLogin.formatted(date: .abbreviated, time: .shortened))")
        Button("Logout") {
            // Handle logout by deleting the session
            if let modelContext = Environment(\.modelContext).wrappedValue {
                modelContext.delete(session)
            }
        }
    }
}

}

var sharedModelContainer: ModelContainer = {
    let schema = Schema([UserSession.self])
    let container = try! ModelContainer(for: schema)
    return container

}

Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • User mentioned (1): @Model
  • Low reputation (1):
Posted by: A67 - Raju