diff --git a/companion/app/(tabs)/(event-types)/_layout.tsx b/companion/app/(tabs)/(event-types)/_layout.tsx index 710077f404ed93..43cb7019c701bf 100644 --- a/companion/app/(tabs)/(event-types)/_layout.tsx +++ b/companion/app/(tabs)/(event-types)/_layout.tsx @@ -3,7 +3,8 @@ import { Stack } from "expo-router"; export default function EventTypesLayout() { return ( - + + ); } diff --git a/companion/app/event-type-detail.tsx b/companion/app/(tabs)/(event-types)/event-type-detail.tsx similarity index 93% rename from companion/app/event-type-detail.tsx rename to companion/app/(tabs)/(event-types)/event-type-detail.tsx index bbfec5e25ec4b5..bc7dcc6c7602a7 100644 --- a/companion/app/event-type-detail.tsx +++ b/companion/app/(tabs)/(event-types)/event-type-detail.tsx @@ -1,8 +1,7 @@ import { Ionicons } from "@expo/vector-icons"; import * as Clipboard from "expo-clipboard"; -import { GlassView, isLiquidGlassAvailable } from "expo-glass-effect"; import { Stack, useLocalSearchParams, useRouter } from "expo-router"; -import { useCallback, useEffect, useState } from "react"; +import { Activity, useCallback, useEffect, useState } from "react"; import { Alert, Animated, @@ -39,6 +38,7 @@ import { validateLocationItem, } from "@/utils/locationHelpers"; import { safeLogError } from "@/utils/safeLogger"; +import { isLiquidGlassAvailable } from "expo-glass-effect"; // Type definitions for extended EventType fields not in the base type interface EventTypeExtended { @@ -1141,20 +1141,44 @@ export default function EventTypeDetail() { headerRight: Platform.OS === "android" || Platform.OS === "web" ? renderHeaderRight : undefined, headerShown: Platform.OS !== "ios", + headerTransparent: Platform.select({ + ios: true, + }), }} /> {Platform.OS === "ios" && ( - - - router.back()}> - - - - - {headerTitle} - + + + + {activeTab.charAt(0).toUpperCase() + activeTab.slice(1)} + + {tabs.map((tab) => ( + setActiveTab(tab.id)} + > + {tab.label} + + ))} + - {/* Tabs */} - {isLiquidGlassAvailable() ? ( - - - {tabs.map((tab) => ( - setActiveTab(tab.id)} - > - - - - {tab.label} - - - - ))} - - - ) : ( - - - {tabs.map((tab) => ( - setActiveTab(tab.id)} - > - - - - {tab.label} - - - - ))} - - - )} - - {/* Content */} + + + + {tabs.map((tab) => ( + setActiveTab(tab.id)} + > + + + + {tab.label} + + + + ))} + + + + {activeTab === "basics" ? ( ) : null} - - {/* Bottom Action Bar */} - - - - Hidden + + + Hidden - - - - - - + + Preview + + - - - - - + + Copy Link + + - - - - - - + + Delete + + - + ); diff --git a/companion/app/(tabs)/_layout.tsx b/companion/app/(tabs)/_layout.tsx index 0a2f65aaff7b70..f13bbf38f7e839 100644 --- a/companion/app/(tabs)/_layout.tsx +++ b/companion/app/(tabs)/_layout.tsx @@ -15,6 +15,7 @@ export default function TabLayout() { default: { color: "#8E8E93", fontSize: 8.5 }, // Gray text when unselected selected: { color: "#000000", fontSize: 10 }, // Black text when selected }} + disableTransparentOnScrollEdge={true} > & { customClassNames?: LocationSelectCustomClassNames }) { const isPlatform = useIsPlatform(); + const { innerClassNames: propsInnerClassNames, ...restProps } = props as typeof props & { + innerClassNames?: { + option?: string; + }; + }; return ( name="location" id="location-select" data-testid="location-select" + innerClassNames={{ + ...propsInnerClassNames, + option: classNames("mb-1 last:mb-0", propsInnerClassNames?.option), + }} components={{ Option: (props) => { return ( @@ -137,7 +146,7 @@ export default function LocationSelect({ {e.label}

)} - {...props} + {...restProps} /> ); }