39 lines · 1.4 KB · TypeScript
RawDownload
import type { HeaderBarButtonMailSearchToolbarItem } from "react-native-screens"; import { NATIVE_LIQUID_GLASS_SUPPORTED } from "../../native/native-glass"; /** * The patched mail-style toolbar is built natively from iOS 26 Liquid Glass * UIKit (`UIGlassEffect`) with no earlier fallback: pre-26 the native side * silently drops the item and hides the navigation toolbar entirely. Screens * that send it must fall back to standard search/toolbar primitives when this * is false. */export const NATIVE_MAIL_SEARCH_TOOLBAR_SUPPORTED = NATIVE_LIQUID_GLASS_SUPPORTED; /** Clearance for scroll content that must come to rest above the floating toolbar. */export const NATIVE_MAIL_SEARCH_TOOLBAR_CONTENT_INSET = 56; type NativeMailSearchToolbarInput = Omit<  HeaderBarButtonMailSearchToolbarItem,  "type" | "useFallbackSearchField">; /** * Builds the patched react-native-screens Mail-style bottom search toolbar. * * Keeping this behind an app-level helper makes the iOS-only RNS patch an * explicit layout primitive instead of a per-screen object literal. Android can * keep using platform-specific header/search primitives without depending on * this helper. */export function createNativeMailSearchToolbarItem(  input: NativeMailSearchToolbarInput,): HeaderBarButtonMailSearchToolbarItem {  return {    placeholder: "Search",    ...input,    type: "mailSearchToolbar",    useFallbackSearchField: true,  };}