UNPKG

react-native-router-flux-custom-tabs

Version:

React Native Router using Flux architecture this is my fork for testing

360 lines (309 loc) 9.94 kB
// typings for react-native-router-flux@3.26.16 // created by bang88 (https://github.com/bang88) import * as React from 'react'; import * as ReactNative from 'react-native'; declare namespace RNRF { export interface SceneProps { // Scene /** * Will be used to call screen transition, for example, Actions.name(params). Must be unique. */ key: string, /** * The Component to be displayed. Not required when defining a nested Scene, see example. If it is defined for 'container' scene, it will be used as custom container renderer */ component?: React.ReactNode, /** * Set to true if this is the initial scene */ initial?: boolean, /** * Defines how the new screen is added to the navigator stack. One of push, jump, replace, reset. If parent container is tabbar (tabs=true), jump will be automatically set. */ type?: 'push' | 'jump' | string, /** * Scenes marked with clone will be treated as templates and cloned into the current scene's parent when pushed. See example. */ clone?: boolean, /** * Pass all own props (except style, key, name, component, tabs) to children. Note that passProps is also passed to children. */ passProps?: boolean, // Animation /** * optional. acts as a shortcut to writing an applyAnimation function with Animated.timing for a given duration (in ms). */ duration?: number, /** * direction of animation horizontal/vertical */ direction?: 'vertical' | 'horizontal', /** * optional if provided overrides the default spring animation */ applyAnimation?: Function, // Scene styles /** * optional style override for the Scene's component */ sceneStyle?: ReactNative.ViewStyle, /** * Optionally override the styles for NavigationCard's Animated.View rendering the scene. Receives first argument of NavigationSceneRendererProps and second argument of {hideNavBar,hideTabBar,isActive} (see Example app). */ getSceneStyle?: Function, // Tabs /** * Defines 'TabBar' scene container, so child scenes will be displayed as 'tabs'. If no component is defined, built-in TabBar is used as renderer. All child scenes are wrapped into own navbar. */ tabs?: boolean, /** * optional style override for the Tabs component */ tabBarStyle?: ReactNative.ViewStyle, /** * hides tab bar for this scene and any following scenes until explicitly reversed (if built-in TabBar component is used as parent renderer) */ hideTabBar?: boolean, // Navigation Bar /** * hides the navigation bar for this scene and any following scenes until explicitly reversed */ hideNavBar?: boolean, /** * optional style override for the navigation bar */ navigationBarStyle?: ReactNative.ViewStyle, /** * optional custom NavBar for the scene. Check built-in NavBar of the component for reference */ navBar?: React.ReactNode, /** * Simple way to override the drawerImage in the navBar */ drawerImage?: ReactNative.Image, // Navigation Bar: Title /** * The title to be displayed in the navigation bar */ title?: string, /** * Optionally closure to return a value of the title based on state */ getTitle?: Function, /** * Optionally closure to render the title */ renderTitle?: Function, /** * optional style override for the title element */ titleStyle?: ReactNative.TextStyle, // Navigation Bar: Back button /** * optional string to display with back button */ backTitle?: string /** * optional closure to render back text or button if this route happens to be the previous route */ renderBackButton?: Function /** * './back_chevron.png' Simple way to override the back button in the navBar */ backButtonImage?: ReactNative.Image, /** * optional style override for the back title element */ backButtonTextStyle?: ReactNative.TextStyle, // Navigation Bar: Left button /** * optional string to display on the left if the previous route does not provide renderBackButton prop. renderBackButton > leftTitle > */ leftTitle?: string, /** * optional closure to render the left title / buttons element */ renderLeftButton?: Function, /** * function will be called when left navBar button is pressed */ onLeft?: Function, /** * Image for left button */ leftButtonImage?: ReactNative.Image, /** * Image style for left button */ leftButtonIconStyle?: ReactNative.ViewStyle, /** * optional style override for the container of left title / buttons */ leftButtonStyle?: ReactNative.ViewStyle, /** * optional style override for the left title element */ leftButtonTextStyle?: ReactNative.TextStyle, // Navigation Bar: Right button /** * optional string to display on the right. onRight must be provided for this to appear. */ rightTitle?: string, /** * optional closure to render the right title / buttons element */ renderRightButton?: Function, /** * function will be called when right navBar button is pressed */ onRight?: Function, /** * Image for right button */ rightButtonImage?: ReactNative.Image, /** * Image style for right button */ rightButtonIconStyle?: ReactNative.ViewStyle, /** * optional style override for the container of right title / buttons */ rightButtonStyle?: ReactNative.ViewStyle, /** * optional style override for the right title element */ rightButtonTextStyle?: ReactNative.TextStyle, /** * optional wrappert */ wrapBy?: ()=>any, } /** * Scene */ export class Scene extends React.Component<SceneProps, {}> { } // Router interface RouterProps extends React.Props<Router> { reducer?: Function, createReducer?: Function, scenes?: any, /** * optional Scene's props that can be used in Router */ type?: 'push' | 'jump' | string, clone?: boolean, passProps?: boolean, duration?: number, direction?: 'vertical' | 'horizontal', applyAnimation?: Function, sceneStyle?: ReactNative.ViewStyle, getSceneStyle?: Function, tabs?: boolean, tabBarStyle?: ReactNative.ViewStyle, hideTabBar?: boolean, hideNavBar?: boolean, navigationBarStyle?: ReactNative.ViewStyle, navBar?: React.ReactNode, drawerImage?: ReactNative.Image, title?: string, getTitle?: Function, renderTitle?: Function, titleStyle?: ReactNative.TextStyle, backTitle?: string, renderBackButton?: Function, backButtonImage?: ReactNative.Image, backButtonTextStyle?: ReactNative.TextStyle, leftTitle?: string, renderLeftButton?: Function, onLeft?: Function, leftButtonImage?: ReactNative.Image, leftButtonIconStyle?: ReactNative.ViewStyle, leftButtonStyle?: ReactNative.ViewStyle, leftButtonTextStyle?: ReactNative.TextStyle, rightTitle?: string, renderRightButton?: Function, onRight?: Function, rightButtonImage?: ReactNative.Image, rightButtonIconStyle?: ReactNative.ViewStyle, rightButtonStyle?: ReactNative.ViewStyle, rightButtonTextStyle?: ReactNative.TextStyle } export class Router extends React.Component<RouterProps, {}>{ } // Actions type props = Object; interface RNRFActions { pop(props?: props): void, jump(props: props): void, refresh(props: props): void, focus(props: props): void, create(scene: React.ReactNode, wrapBy?: () => any): Object, [sceneKey: string]: (props?: props) => void } export var Actions: RNRFActions; // ActionsConst interface RNRFActionConst { JUMP: string, PUSH: string, PUSH_OR_POP: string, REPLACE: string, BACK: string, BACK_ACTION: string, POP_AND_REPLACE: string, POP_TO: string, REFRESH: string, RESET: string, FOCUS: string, } export var ActionConst: RNRFActionConst; // DefaultRenderer interface DefaultRendererProps extends React.Props<DefaultRenderer> { navigationState: Object, onNavigate: Function } export class DefaultRenderer extends React.Component<DefaultRendererProps, {}>{ } // Modal interface ModalProps extends React.Props<Modal> { navigationState: Object, onNavigate: Function } export class Modal extends React.Component<ModalProps, {}>{ } // navbar interface NavBarProps extends React.Props<NavBar> { navigationState?: Object, backButtonImage?: number, backButtonTextStyle?: ReactNative.TextStyle, leftButtonStyle?: ReactNative.ViewStyle leftButtonIconStyle?: ReactNative.ImageStyle, getTitle?: Function, titleStyle?: ReactNative.TextStyle, position?: Object, navigationBarStyle?: ReactNative.ViewStyle, renderTitle?: any, } export class NavBar extends React.Component<NavBarProps, {}>{ } // Reducer export var Reducer: (state: {}, scence: {}) => any; // Switch interface SwitchProps extends React.Props<Switch> { navigationState?: Object, onNavigate?: Function, selector?: Function, } export class Switch extends React.Component<SwitchProps, {}>{ } // TabBar interface TabBarProps extends React.Props<TabBar> { navigationState?: Object, tabIcon?: any, onNavigate?: Function, } export class TabBar extends React.Component<TabBarProps, {}>{ } // getInitialState export var getInitialState: (scenes: any) => Object // Util export interface Util { deepestExplicitValueForKey(navigationState: Object, key: string): any, assert(expr: boolean, failDescription: any): void } } export = RNRF;