import { NavigationActions, getNavigation } from '@react-navigation/core'; export default function handleServerRequest( Router, pathWithLeadingSlash, query ) { const path = pathWithLeadingSlash.slice(1); // Get initial action from the URL const navigationAction = Router.getActionForPathAndParams(path, query) || NavigationActions.init(); // Get state from reducer const navigationState = Router.getStateForAction(navigationAction); const actionSubscribers = new Set(); // Prepare top-level navigation prop let navigation = null; function getCurrentNavigation() { return navigation; } navigation = getNavigation( Router, navigationState, () => {}, actionSubscribers, () => ({}), getCurrentNavigation ); // Get title from active screen options const activeKey = navigationState.routes[navigationState.index].key; const activeChildNavigation = navigation.getChildNavigation(activeKey); const options = Router.getScreenOptions(activeChildNavigation); const title = options.title || options.headerTitle; return { navigation, title, options }; }