import React, { ReactNode } from 'react'; import { Animated, View, ViewProps, ImageProps, Image } from 'react-native'; import { ScreenProps, ScreenContainerProps, ScreenStackProps, ScreenStackHeaderConfigProps, HeaderSubviewTypes, SearchBarProps, } from './types'; export * from './types'; export { default as useTransitionProgress } from './useTransitionProgress'; export { isSearchBarAvailableForCurrentPlatform, isNewBackTitleImplementation, executeNativeBackPress, } from './utils'; let ENABLE_SCREENS = true; export function enableScreens(shouldEnableScreens = true): void { ENABLE_SCREENS = shouldEnableScreens; } export function screensEnabled(): boolean { return ENABLE_SCREENS; } // @ts-ignore function stub, freezing logic is located in index.native.tsx // eslint-disable-next-line @typescript-eslint/no-unused-vars export function enableFreeze(shouldEnableReactFreeze = true): void { // noop } export class NativeScreen extends React.Component { render(): JSX.Element { let { active, activityState, style, enabled = ENABLE_SCREENS, ...rest } = this.props; if (enabled) { if (active !== undefined && activityState === undefined) { activityState = active !== 0 ? 2 : 0; // change taken from index.native.tsx } return (