diff options
| author | Fuwn <[email protected]> | 2025-02-20 19:33:19 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-20 19:33:19 -0800 |
| commit | e23a8714f6cdc1b55ef96f6bc0f024af049ce299 (patch) | |
| tree | 8496471c3e0a455dc0d0c5c16a3c03964509934e /Sora/Views/MainView.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-e23a8714f6cdc1b55ef96f6bc0f024af049ce299.tar.xz sora-testing-e23a8714f6cdc1b55ef96f6bc0f024af049ce299.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Views/MainView.swift')
| -rw-r--r-- | Sora/Views/MainView.swift | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/Sora/Views/MainView.swift b/Sora/Views/MainView.swift index 966d986..af56e06 100644 --- a/Sora/Views/MainView.swift +++ b/Sora/Views/MainView.swift @@ -3,13 +3,29 @@ import SwiftUI struct MainView: View { @EnvironmentObject var settings: Settings @State private var selectedTab: Int = 0 - @StateObject private var manager = MoebooruManager() + @State private var manager = BooruManager(booru: .yandere) var body: some View { #if os(macOS) ContentView() .environmentObject(settings) .environmentObject(manager) + .onChange(of: settings.preferredBooru) { _, newState in + self.manager = BooruManager(booru: newState) + + Task { + await self.manager.fetchPosts() + } + } + .onAppear { + self.manager = BooruManager(booru: self.settings.preferredBooru) + + Task { + if manager.posts.isEmpty { + await self.manager.fetchPosts() + } + } + } #else TabView(selection: $selectedTab) { ContentView() @@ -37,6 +53,22 @@ struct MainView: View { .tag(2) } .environmentObject(settings) + .onChange(of: settings.preferredBooru) { _, newState in + self.manager = BooruManager(booru: newState) + + Task { + await self.manager.fetchPosts() + } + } + .onAppear { + self.manager = BooruManager(booru: self.settings.preferredBooru) + + Task { + if manager.posts.isEmpty { + await self.manager.fetchPosts() + } + } + } #endif } } |