@react-navigation/native-stack
Version:
Native stack navigator using react-native-screens
20 lines (19 loc) • 1.12 kB
JavaScript
import { usePreventRemoveContext } from '@react-navigation/native';
import * as React from 'react';
export function useInvalidPreventRemoveError(descriptors) {
const {
preventedRoutes
} = usePreventRemoveContext();
const preventedRouteKey = Object.keys(preventedRoutes)[0];
const preventedDescriptor = descriptors[preventedRouteKey];
const isHeaderBackButtonMenuEnabledOnPreventedScreen = preventedDescriptor?.options?.headerBackButtonMenuEnabled;
const preventedRouteName = preventedDescriptor?.route?.name;
React.useEffect(() => {
if (preventedRouteKey != null && isHeaderBackButtonMenuEnabledOnPreventedScreen) {
const message = `The screen ${preventedRouteName} uses 'usePreventRemove' hook alongside 'headerBackButtonMenuEnabled: true', which is not supported. \n\n` + `Consider removing 'headerBackButtonMenuEnabled: true' from ${preventedRouteName} screen to get rid of this error.`;
console.error(message);
}
}, [preventedRouteKey, isHeaderBackButtonMenuEnabledOnPreventedScreen, preventedRouteName]);
}
//# sourceMappingURL=useInvalidPreventRemoveError.js.map
;