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:
1 parent
ed36ed72de
commit
1817422836
2 files changed
+28
-16
No files matched your search
@@ -187,7 +187,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 22;
|
CURRENT_PROJECT_VERSION = 23;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = "";
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "GiteaPR";
|
INFOPLIST_KEY_CFBundleDisplayName = "GiteaPR";
|
||||||
@@ -197,7 +197,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 3.1;
|
MARKETING_VERSION = 3.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.bueso.giteapr;
|
PRODUCT_BUNDLE_IDENTIFIER = com.bueso.giteapr;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
@@ -211,7 +211,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 22;
|
CURRENT_PROJECT_VERSION = 23;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = "";
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "GiteaPR";
|
INFOPLIST_KEY_CFBundleDisplayName = "GiteaPR";
|
||||||
@@ -221,7 +221,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 3.1;
|
MARKETING_VERSION = 3.2;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.bueso.giteapr;
|
PRODUCT_BUNDLE_IDENTIFIER = com.bueso.giteapr;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
|||||||
@@ -103,19 +103,31 @@ struct PRDetailView: View {
|
|||||||
VStack(spacing: 0) {
|
VStack(spacing: 0) {
|
||||||
header(pr)
|
header(pr)
|
||||||
|
|
||||||
// Page-style TabView gives iOS-native swipe-to-change between
|
// Horizontal paging ScrollView — swipeable like a TabView, but
|
||||||
// sections (matching iOS 26), while the bottom bar taps select.
|
// without breaking NavigationLink inside the tabs (TabView's .page
|
||||||
TabView(selection: $selectedTab) {
|
// style swallows taps and interferes with nested navigation).
|
||||||
OverviewTab(pr: pr)
|
ScrollView(.horizontal, showsIndicators: false) {
|
||||||
.tag(DetailTab.overview)
|
HStack(spacing: 0) {
|
||||||
ConversationTab(vm: vm)
|
OverviewTab(pr: pr)
|
||||||
.tag(DetailTab.conversation)
|
.id(DetailTab.overview)
|
||||||
FilesTab(vm: vm)
|
.containerRelativeFrame(.horizontal)
|
||||||
.tag(DetailTab.files)
|
|
||||||
ChecksTab(vm: vm, onRerun: { showRerunConfirm = $0 })
|
ConversationTab(vm: vm)
|
||||||
.tag(DetailTab.checks)
|
.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)
|
.ignoresSafeArea(edges: .bottom)
|
||||||
|
|
||||||
bottomTabBar
|
bottomTabBar
|
||||||
|
|||||||
Reference in new issue
Block a user