Replace page TabView with paging ScrollView; fix diff + centering; bump to 3.2
Build iOS App / Build .ipa and publish source (push) Failing after 16s
Build iOS App / Build .ipa and publish source (push) Failing after 16s
The TabView with .page style broke NavigationLink inside tabs (the page gesture swallows taps) and centered content. Replace with a horizontal paging ScrollView using containerRelativeFrame and scrollTargetBehavior(.paging): same swipe-to-change behavior, no gesture conflicts, diff view works again. Bump to 3.2.
This commit is contained in:
@@ -187,7 +187,7 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 22;
|
||||
CURRENT_PROJECT_VERSION = 23;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "GiteaPR";
|
||||
@@ -197,7 +197,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 3.1;
|
||||
MARKETING_VERSION = 3.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.bueso.giteapr;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
@@ -211,7 +211,7 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 22;
|
||||
CURRENT_PROJECT_VERSION = 23;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "GiteaPR";
|
||||
@@ -221,7 +221,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 3.1;
|
||||
MARKETING_VERSION = 3.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.bueso.giteapr;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
|
||||
@@ -103,19 +103,31 @@ struct PRDetailView: View {
|
||||
VStack(spacing: 0) {
|
||||
header(pr)
|
||||
|
||||
// Page-style TabView gives iOS-native swipe-to-change between
|
||||
// sections (matching iOS 26), while the bottom bar taps select.
|
||||
TabView(selection: $selectedTab) {
|
||||
OverviewTab(pr: pr)
|
||||
.tag(DetailTab.overview)
|
||||
ConversationTab(vm: vm)
|
||||
.tag(DetailTab.conversation)
|
||||
FilesTab(vm: vm)
|
||||
.tag(DetailTab.files)
|
||||
ChecksTab(vm: vm, onRerun: { showRerunConfirm = $0 })
|
||||
.tag(DetailTab.checks)
|
||||
// Horizontal paging ScrollView — swipeable like a TabView, but
|
||||
// without breaking NavigationLink inside the tabs (TabView's .page
|
||||
// style swallows taps and interferes with nested navigation).
|
||||
ScrollView(.horizontal, showsIndicators: false) {
|
||||
HStack(spacing: 0) {
|
||||
OverviewTab(pr: pr)
|
||||
.id(DetailTab.overview)
|
||||
.containerRelativeFrame(.horizontal)
|
||||
|
||||
ConversationTab(vm: vm)
|
||||
.id(DetailTab.conversation)
|
||||
.containerRelativeFrame(.horizontal)
|
||||
|
||||
FilesTab(vm: vm)
|
||||
.id(DetailTab.files)
|
||||
.containerRelativeFrame(.horizontal)
|
||||
|
||||
ChecksTab(vm: vm, onRerun: { showRerunConfirm = $0 })
|
||||
.id(DetailTab.checks)
|
||||
.containerRelativeFrame(.horizontal)
|
||||
}
|
||||
.scrollTargetLayout()
|
||||
}
|
||||
.tabViewStyle(.page(indexDisplayMode: .never))
|
||||
.scrollTargetBehavior(.paging)
|
||||
.scrollPosition(id: $selectedTab)
|
||||
.ignoresSafeArea(edges: .bottom)
|
||||
|
||||
bottomTabBar
|
||||
|
||||
Reference in New Issue
Block a user