minor concurrency improvements

This commit is contained in:
neon443
2025-05-29 18:32:54 +01:00
parent 69047010d7
commit 2ef000458f
5 changed files with 16 additions and 13 deletions

View File

@@ -27,10 +27,10 @@ struct ContentView: View {
var body: some View { var body: some View {
TabView(selection: $selection) { TabView(selection: $selection) {
HomeView(viewModel: viewModel, settingsModel: settingsModel) HomeView(viewModel: viewModel, settingsModel: settingsModel)
.tabItem { .tabItem {
Label("Home", systemImage: "house") Label("Home", systemImage: "house")
} }
.tag(Tab.home) .tag(Tab.home)
ArchiveView(viewModel: viewModel) ArchiveView(viewModel: viewModel)
.tabItem() { .tabItem() {
Label("Archive", systemImage: "tray.full") Label("Archive", systemImage: "tray.full")

View File

@@ -95,8 +95,11 @@ struct SettingsView: View {
List { List {
if !settingsModel.notifsGranted { if !settingsModel.notifsGranted {
Button("Request Notifications") { Button("Request Notifications") {
Task { Task.detached {
settingsModel.notifsGranted = await requestNotifs() let requestNotifsResult = await requestNotifs()
await MainActor.run {
settingsModel.notifsGranted = requestNotifsResult
}
} }
} }
Text("\(Image(systemName: "xmark")) Notifications disabled for Near Future") Text("\(Image(systemName: "xmark")) Notifications disabled for Near Future")

View File

@@ -248,8 +248,8 @@ class EventViewModel: ObservableObject, @unchecked Sendable {
updateSyncStatus() updateSyncStatus()
loadEvents() loadEvents()
Task { Task.detached {
await checkPendingNotifs(getNotifs()) await self.checkPendingNotifs(self.getNotifs())
} }
WidgetCenter.shared.reloadAllTimelines()//reload all widgets when saving events WidgetCenter.shared.reloadAllTimelines()//reload all widgets when saving events
objectWillChange.send() objectWillChange.send()

View File

@@ -76,7 +76,7 @@ class SettingsViewModel: ObservableObject {
self.device = getDevice() self.device = getDevice()
if load { if load {
loadSettings() loadSettings()
Task { Task.detached {
let requestResult = await requestNotifs() let requestResult = await requestNotifs()
await MainActor.run { await MainActor.run {
self.notifsGranted = requestResult self.notifsGranted = requestResult

View File

@@ -11,13 +11,13 @@ import SwiftData
@main @main
struct NearFutureApp: App { struct NearFutureApp: App {
@StateObject var settingsModel: SettingsViewModel = SettingsViewModel() @StateObject var settingsModel: SettingsViewModel = SettingsViewModel()
var body: some Scene { var body: some Scene {
WindowGroup { WindowGroup {
ContentView( ContentView(
viewModel: EventViewModel(), viewModel: EventViewModel(),
settingsModel: settingsModel settingsModel: settingsModel
) )
.tint(settingsModel.settings.tint.color) .tint(settingsModel.settings.tint.color)
} }
} }
} }