From 58b89d4c860c125308e8e40ef7c3203e08a2a993 Mon Sep 17 00:00:00 2001 From: Ilyas Hallak Date: Wed, 1 Oct 2025 21:56:11 +0200 Subject: [PATCH] refactor: Remove legacy tabItem code and use only modern Tab API - Remove iOS version checks and legacy .tabItem implementations - Use modern Tab() syntax throughout as app targets iOS 18+ minimum - Simplify code by removing duplicate implementations - Remove @available annotations as they're no longer needed - Clean up code structure while maintaining all functionality --- readeck/UI/Menu/PhoneTabView.swift | 55 ++++-------------------------- 1 file changed, 7 insertions(+), 48 deletions(-) diff --git a/readeck/UI/Menu/PhoneTabView.swift b/readeck/UI/Menu/PhoneTabView.swift index 9da7811..9411be2 100644 --- a/readeck/UI/Menu/PhoneTabView.swift +++ b/readeck/UI/Menu/PhoneTabView.swift @@ -20,28 +20,19 @@ struct PhoneTabView: View { var body: some View { NavigationStack { GlobalPlayerContainerView { - if #available(iOS 18.0, *) { - TabView(selection: $selectedTabIndex) { - mainTabsContentNew - moreTabContentNew - } - .accentColor(.accentColor) - } else { - TabView(selection: $selectedTabIndex) { - mainTabsContent - moreTabContent - } - .accentColor(.accentColor) + TabView(selection: $selectedTabIndex) { + mainTabsContent + moreTabContent } + .accentColor(.accentColor) } } } - // MARK: - Tab Content (iOS 18+) + // MARK: - Tab Content - @available(iOS 18.0, *) @ViewBuilder - private var mainTabsContentNew: some View { + private var mainTabsContent: some View { ForEach(Array(mainTabs.enumerated()), id: \.element) { idx, tab in Tab(tab.label, systemImage: tab.systemImage, value: idx) { tabView(for: tab) @@ -49,9 +40,8 @@ struct PhoneTabView: View { } } - @available(iOS 18.0, *) @ViewBuilder - private var moreTabContentNew: some View { + private var moreTabContent: some View { Tab("More", systemImage: "ellipsis", value: mainTabs.count) { VStack(spacing: 0) { moreTabsList @@ -66,37 +56,6 @@ struct PhoneTabView: View { .badge(offlineBookmarksViewModel.state.localBookmarkCount > 0 ? offlineBookmarksViewModel.state.localBookmarkCount : 0) } - // MARK: - Tab Content (Legacy) - - @ViewBuilder - private var mainTabsContent: some View { - ForEach(Array(mainTabs.enumerated()), id: \.element) { idx, tab in - tabView(for: tab) - .tabItem { - Label(tab.label, systemImage: tab.systemImage) - } - .tag(idx) - } - } - - @ViewBuilder - private var moreTabContent: some View { - VStack(spacing: 0) { - moreTabsList - moreTabsFooter - } - .tabItem { - Label("More", systemImage: "ellipsis") - } - .badge(offlineBookmarksViewModel.state.localBookmarkCount > 0 ? offlineBookmarksViewModel.state.localBookmarkCount : 0) - .tag(mainTabs.count) - .onAppear { - if selectedTabIndex == mainTabs.count && selectedMoreTab != nil { - selectedMoreTab = nil - } - } - } - @ViewBuilder private var moreTabsList: some View { List {