-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
William Candillon
authored
Oct 31, 2016
1 parent
d0323f7
commit c9d535d
Showing
1 changed file
with
359 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,359 @@ | ||
// typings for [email protected] | ||
// 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; |