Skip to content

Commit

Permalink
Migrate BrowserSelector to Observable
Browse files Browse the repository at this point in the history
  • Loading branch information
prof18 committed Sep 11, 2024
1 parent a79159f commit 4447c74
Show file tree
Hide file tree
Showing 10 changed files with 17 additions and 29 deletions.
4 changes: 1 addition & 3 deletions iosApp/Source/App/CompactView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ import Reeeed
struct CompactView: View {

@Environment(AppState.self) private var appState

@EnvironmentObject private var browserSelector: BrowserSelector

@Environment(BrowserSelector.self) private var browserSelector
@Environment(\.openURL) private var openURL

@Binding var selectedDrawerItem: DrawerItem?
Expand Down
7 changes: 3 additions & 4 deletions iosApp/Source/App/ContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ import FeedFlowKit
struct ContentView: View {

@Environment(AppState.self) private var appState
@EnvironmentObject var browserSelector: BrowserSelector

@Environment(\.scenePhase) private var scenePhase: ScenePhase
@Environment(\.horizontalSizeClass) private var horizontalSizeClass: UserInterfaceSizeClass?

@State var browserSelector: BrowserSelector = BrowserSelector()
@StateObject private var vmStoreOwner = VMStoreOwner<HomeViewModel>(Deps.shared.getHomeViewModel())

@State private var isAppInBackground: Bool = false
Expand All @@ -23,14 +22,14 @@ struct ContentView: View {
indexHolder: HomeListIndexHolder(homeViewModel: vmStoreOwner.instance),
homeViewModel: vmStoreOwner.instance
)
.environmentObject(browserSelector)
.environment(browserSelector)
} else {
RegularView(
selectedDrawerItem: $selectedDrawerItem,
indexHolder: HomeListIndexHolder(homeViewModel: vmStoreOwner.instance),
homeViewModel: vmStoreOwner.instance
)
.environmentObject(browserSelector)
.environment(browserSelector)
}

@Bindable var appState = appState
Expand Down
2 changes: 0 additions & 2 deletions iosApp/Source/App/FeedFlowApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ struct FeedFlowApp: App {
@Environment(\.scenePhase) private var scenePhase: ScenePhase

@State private var appState: AppState = AppState()
@StateObject private var browserSelector: BrowserSelector = BrowserSelector()

private var feedSyncTimer: FeedSyncTimer = FeedSyncTimer()

Expand All @@ -34,7 +33,6 @@ struct FeedFlowApp: App {
WindowGroup {
ContentView()
.environment(appState)
.environmentObject(browserSelector)
.onOpenURL(perform: { url in
Deps.shared.getDropboxDataSource().handleOAuthResponse {
DropboxDataSourceIos.handleOAuthResponse(
Expand Down
3 changes: 1 addition & 2 deletions iosApp/Source/App/RegularView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ import Reeeed

struct RegularView: View {
@Environment(AppState.self) private var appState
@EnvironmentObject private var browserSelector: BrowserSelector

@Environment(BrowserSelector.self) private var browserSelector
@Environment(\.openURL) private var openURL

@Binding var selectedDrawerItem: DrawerItem?
Expand Down
4 changes: 1 addition & 3 deletions iosApp/Source/Home/Components/FeedListView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,8 @@ import Reeeed

struct FeedListView: View {
@Environment(\.openURL) private var openURL

@Environment(HomeListIndexHolder.self) private var indexHolder
@EnvironmentObject private var browserSelector: BrowserSelector

@Environment(BrowserSelector.self) private var browserSelector
@Environment(AppState.self) private var appState

@State private var browserToOpen: BrowserToPresent?
Expand Down
5 changes: 1 addition & 4 deletions iosApp/Source/Home/HomeScreen.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@ import FeedFlowKit
struct HomeScreen: View {

@Environment(AppState.self) private var appState

@EnvironmentObject
private var browserSelector: BrowserSelector

@Environment(BrowserSelector.self) private var browserSelector
@Environment(HomeListIndexHolder.self) private var indexHolder
@Environment(\.scenePhase) private var scenePhase
@Environment(\.openURL) private var openURL
Expand Down
6 changes: 3 additions & 3 deletions iosApp/Source/Home/HomeScreenContent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ fileprivate extension FeedFilter {
)
.environment(HomeListIndexHolder(fakeHomeViewModel: true))
.environment(AppState())
.environmentObject(BrowserSelector())
.environment(BrowserSelector())
}

#Preview("HomeContentLoaded") {
Expand Down Expand Up @@ -293,7 +293,7 @@ fileprivate extension FeedFilter {
)
.environment(HomeListIndexHolder(fakeHomeViewModel: true))
.environment(AppState())
.environmentObject(BrowserSelector())
.environment(BrowserSelector())
}

#Preview("HomeContentSettings") {
Expand Down Expand Up @@ -324,5 +324,5 @@ fileprivate extension FeedFilter {
)
.environment(HomeListIndexHolder(fakeHomeViewModel: true))
.environment(AppState())
.environmentObject(BrowserSelector())
.environment(BrowserSelector())
}
3 changes: 1 addition & 2 deletions iosApp/Source/Search/SearchScreenContent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import FeedFlowKit

struct SearchScreenContent: View {
@Environment(\.openURL) private var openURL

@EnvironmentObject private var browserSelector: BrowserSelector
@Environment(BrowserSelector.self) private var browserSelector
@Environment(AppState.self) private var appState

@Binding var searchText: String
Expand Down
6 changes: 3 additions & 3 deletions iosApp/Source/Settings/BrowserSelector.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Foundation
import FeedFlowKit
import UIKit

class BrowserSelector: ObservableObject {
@Observable class BrowserSelector {

private let supportedBrowsers = [
Browser(
Expand Down Expand Up @@ -53,8 +53,8 @@ class BrowserSelector: ObservableObject {
private let browserSettingsRepository = Deps.shared.getBrowserSettingsRepository()
private let settingsRepository = Deps.shared.getSettingsRepository()

@Published var browsers: [Browser] = []
@Published var selectedBrowser: Browser? {
var browsers: [Browser] = []
var selectedBrowser: Browser? {
didSet {
browserSettingsRepository.setFavouriteBrowser(browser: selectedBrowser!)
}
Expand Down
6 changes: 3 additions & 3 deletions iosApp/Source/Settings/SettingsScreen.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ import FeedFlowKit
struct SettingsScreen: View {

@Environment(AppState.self) private var appState
@EnvironmentObject private var browserSelector: BrowserSelector

@Environment(BrowserSelector.self) private var browserSelector
@Environment(\.dismiss) private var dismiss
@Environment(\.openURL) private var openURL

Expand Down Expand Up @@ -99,6 +98,7 @@ struct SettingsScreen: View {
@ViewBuilder
private var behaviourSection: some View {
Section(feedFlowStrings.settingsBehaviourTitle) {
@Bindable var browserSelector = browserSelector
Picker(
selection: $browserSelector.selectedBrowser,
content: {
Expand Down Expand Up @@ -169,5 +169,5 @@ struct SettingsScreen: View {

#Preview {
SettingsScreen()
.environmentObject(BrowserSelector())
.environment(BrowserSelector())
}

0 comments on commit 4447c74

Please sign in to comment.