react-native-router-flux
Version:
React Native Router using Flux architecture
191 lines (176 loc) • 5.83 kB
TypeScript
/// <reference types="react"/>
/// <reference types="react-native"/>
import * as React from 'react';
import { StyleProp, Image, ViewStyle, TextStyle, ImageStyle } from 'react-native';
export var Router: RouterStatic;
export type Router = RouterStatic;
// Reducer
export var Reducer: any;
export type Reducer = any;
// Router
interface RouterProps extends React.Props<Router> {
sceneStyle?: StyleProp<ViewStyle>;
backAndroidHandler?: Function;
wrapBy?: Function;
scenes?: any;
createReducer?: Function;
onStateChange?: Function;
getSceneStyle?: Function;
uriPrefix?: string;
onDeepLink?: Function;
}
interface RouterStatic extends React.ComponentClass<RouterProps> {}
// Scene
export var Scene: SceneStatic;
export type Scene = SceneStatic;
interface SceneProps extends React.Props<Scene> {
key?: string;
component?: React.ComponentType<any>;
back?: boolean;
init?: boolean;
clone?: boolean;
contentComponent?: React.ComponentType<any>;
backButtonImage?: string;
backButtonTintColor?: string;
drawer?: boolean;
failure?: (() => void) | string;
headerBackTitle?: string;
headerMode?: HeaderModeType;
hideNavBar?: boolean;
hideTabBar?: boolean;
hideBackImage?: boolean;
initial?: boolean;
leftButtonImage?: Image;
modal?: boolean;
navigationBarTitleImage?: Image;
navigationBarTitleImageStyle?: StyleProp<ImageStyle>;
navTransparent?: boolean;
on?: (props: any) => void;
onEnter?: (props: any) => void;
onExit?: (props: any) => void;
onLeft?: (props: any) => void;
onRight?: (props: any) => void;
renderTitle?: React.ComponentType<any>;
renderLeftButton?: React.ComponentType<any>;
renderRightButton?: React.ComponentType<any>;
renderBackButton?: React.ComponentType<any>;
rightTitle?: string;
rightButtonImage?: Image | null;
rightButtonTextStyle?: StyleProp<TextStyle>;
success?: (() => void) | string;
tabs?: boolean;
title?: (() => string) | string;
titleStyle?: StyleProp<TextStyle>;
type?: ActionConstShort;
[name: string]: any; // These are passed through to the scenes
}
interface TabSceneProps extends React.Props<Scene> {
icon?: React.ComponentType<any>;
tabBarLabel?: string;
}
interface SceneStatic extends React.ComponentClass<SceneProps & TabsProps & TabSceneProps & DrawerProps & ModalProps> {}
export type HeaderModeType = 'float' | 'screen' | 'none';
// Tabs
export var Tabs: TabsStatic;
export type Tabs = TabsStatic;
interface TabsProps extends React.Props<Tabs> {
wrap?: boolean;
activeBackgroundColor?: string;
activeTintColor?: string;
inactiveBackgroundColor?: string;
inactiveTintColor?: string;
labelStyle?: StyleProp<TextStyle>;
lazy?: boolean;
hideNavBar?: boolean;
hideTabBar?: boolean;
tabBarComponent?: React.ComponentType<any>;
tabBarPosition?: TabBarPositionType;
tabBarStyle?: StyleProp<ViewStyle>;
tabStyle?: StyleProp<ViewStyle>;
indicatorStyle?: StyleProp<ViewStyle>;
showLabel?: boolean;
swipeEnabled?: boolean;
tabBarOnPress?: Function;
backToInitial?: boolean;
}
interface TabsStatic extends React.ComponentClass<SceneProps & TabsProps> {}
export type TabBarPositionType = 'top' | 'bottom';
// Drawer
export var Drawer: DrawerStatic;
export type Drawer = DrawerStatic;
interface DrawerProps extends React.Props<Drawer> {
drawerImage?: Image;
drawerIcon?: React.ReactElement<any> | React.ComponentType<any>;
drawerPosition?: DrawerPositionType;
}
interface DrawerStatic extends React.ComponentClass<SceneProps & DrawerProps> {}
export type DrawerPositionType = 'right' | 'left';
// Modal
export var Modal: ModalStatic;
export type Modal = ModalStatic;
interface ModalProps extends React.Props<Modal> {}
interface ModalStatic extends React.ComponentClass<SceneProps & ModalProps> {}
// Overlay
export var Overlay: OverlayStatic;
export type Overlay = OverlayStatic;
interface OverlayProps extends React.Props<Overlay> {}
interface OverlayStatic extends React.ComponentClass<SceneProps & OverlayProps> {}
// Lightbox
export var Lightbox: LightboxStatic;
export type Lightbox = LightboxStatic;
interface LightboxProps extends React.Props<Modal> {}
interface LightboxStatic extends React.ComponentClass<SceneProps & LightboxProps> {}
// Stack
export var Stack: StackStatic;
export type Stack = StackStatic;
interface StackProps extends React.Props<Stack> {
navigationBarStyle?: StyleProp<ViewStyle>;
icon?: any;
tintColor?: string;
hideNavBar?: boolean;
hideTabBar?: boolean;
title?: string;
lightbox?: boolean;
tabs?: boolean;
initial?: boolean;
titleStyle?: StyleProp<TextStyle>;
type?: string;
navTransparent?: boolean;
renderer?: any;
}
interface StackStatic extends React.ComponentClass<StackProps> {}
export var Actions: ActionsGenericStatic;
export type Actions = ActionsGenericStatic;
interface ActionsStatic {
currentScene: any;
jump: (sceneKey: string, props?: any) => void;
pop: (params?: { animated?: boolean }) => void;
popAndPush: (sceneKey: string, props?: any) => void;
popTo: (sceneKey: string, props?: any) => void;
push: (sceneKey: string, props?: any) => void;
refresh: (props?: any) => void;
replace: (sceneKey: string, props?: any) => void;
reset: (sceneKey: string, props?: any) => void;
addRef: (name: string, ref?: any) => void
drawerOpen?: any;
drawerClose?: any;
}
interface ActionsGenericStatic extends ActionsStatic {
[key: string]: (props?: any) => void;
}
export type ActionConstShort = 'jump' | 'push' | 'replace' | 'pop' | 'popTo' | 'refresh' | 'reset';
export declare const ActionConst: ActionConst;
export type ActionConst = {
JUMP: string;
PUSH: string;
PUSH_OR_POP: string;
REPLACE: string;
BACK: string;
BACK_ACTION: string;
POP_TO: string;
REFRESH: string;
RESET: string;
FOCUS: string;
BLUR: string;
ANDROID_BACK: string;
};