import { Stack, type NativeStackNavigationOptions } from "expo-router"; import { Platform } from "react-native"; import { FeedbackBodyProvider } from "../../shared/context/FeedbackBodyProvider.js"; import { FeedbackProvider } from "../../shared/context/FeedbackProvider.js"; import { kinds } from "../../shared/helpers.js"; import { mergeFeedbackMessages } from "../../shared/messages.js"; import { mergeFeedbackTheme } from "../../shared/theme.js"; import { collectExpoMetadata } from "./metadata.js"; import { RoutedFeedbackProvider } from "./RoutedFeedbackContext.js"; import { resolveFeedbackRoutes } from "./routes.js"; import type { FeedbackStackLayoutProps } from "./types.js"; export function FeedbackStackLayout({ hooks, messages, theme, unstyled, entrySort = "top", commentSort = "top", enabledKinds = kinds, maxCommentDepth = 5, debounceDuration = 300, collectMetadata, emptyState, loading, transformComments, renderActor, onUnauthenticated, routes: routeOverrides, screenOptions, boardOptions, entryOptions, editOptions, createOptions, androidToolbarIcons = {}, BottomToolbarWrapper, primaryColor, primaryForeground, backgroundColor, surfaceColor, inputColor, textColor, mutedColor, borderColor, dangerColor, }: FeedbackStackLayoutProps) { const routes = resolveFeedbackRoutes(routeOverrides); const resolvedMessages = mergeFeedbackMessages(messages); const resolvedTheme = mergeFeedbackTheme(theme); const colors = { primaryColor, primaryForeground, backgroundColor, surfaceColor, inputColor, textColor, mutedColor, borderColor, dangerColor, }; const background = backgroundColor ?? resolvedTheme.colors.background; const boardTitle = enabledKinds.length === 1 ? resolvedMessages.kindsPlural[enabledKinds.at(0)!] : resolvedMessages.board.title; const defaults: NativeStackNavigationOptions = { headerShown: true, headerBackButtonDisplayMode: "minimal", headerTintColor: textColor ?? resolvedTheme.colors.text, contentStyle: { backgroundColor: background }, }; return ( ); }