diff --git a/types/react-router-native/index.d.ts b/types/react-router-native/index.d.ts new file mode 100644 index 0000000000..214e81b0d3 --- /dev/null +++ b/types/react-router-native/index.d.ts @@ -0,0 +1,47 @@ +// Type definitions for React Router Native 4.0 +// Project: https://github.com/ReactTraining/react-router-native +// Definitions by: Eduard Zintz +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +export { + match, + matchPath, + MemoryRouter, + Prompt, + Redirect, + Route, + RouteComponentProps, + RouteProps, + Router, + RouterChildContext, + StaticRouter, + Switch, + withRouter +} from 'react-router'; +import * as React from 'react'; +import * as H from 'history'; + +export interface AndroidBackButtonProps { + children: Array>; +} + +export class AndroidBackButton extends React.Component {} + +export class DeepLinking extends React.Component<{}, {}> {} + +export interface LinkProps { + component?: React.Component; + replace?: boolean; + style?: any; + to: H.LocationDescriptor; +} + +export class Link extends React.Component {} + +export interface NativeRouterProps { + getUserConfirmation?: Function; + keyLength?: number; +} + +export class NativeRouter extends React.Component {} diff --git a/types/react-router-native/react-router-native-tests.tsx b/types/react-router-native/react-router-native-tests.tsx new file mode 100644 index 0000000000..40cd5b8532 --- /dev/null +++ b/types/react-router-native/react-router-native-tests.tsx @@ -0,0 +1,80 @@ +import * as React from 'react'; +import {StyleSheet, Text, View} from 'react-native'; +import {NativeRouter as Router, Route, Link} from 'react-router-native'; + +const Home: React.SFC<{}> = () => { + return ( + + + Welcome to React Native! + + + Press Cmd+R to reload,{'\n'} + Cmd+D or shake for dev menu + + + ); +}; + +const About: React.SFC<{}> = () => { + return ( + + About + + ); +}; + +export default class App extends React.Component<{}, {}> { + render() { + return ( + + + + + Home + + + About + + + + + + + ); + } +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: '#F5FCFF', + }, + header: { + fontSize: 20 + }, + nav: { + flexDirection: 'row', + justifyContent: 'space-around' + }, + navItem: { + flex: 1, + alignItems: 'center', + padding: 10 + }, + subNavItem: { + padding: 5 + }, + welcome: { + fontSize: 20, + textAlign: 'center', + margin: 10, + }, + instructions: { + textAlign: 'center', + color: '#333333', + marginBottom: 5, + }, +}); diff --git a/types/react-router-native/tsconfig.json b/types/react-router-native/tsconfig.json new file mode 100644 index 0000000000..6764b72818 --- /dev/null +++ b/types/react-router-native/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "module": "commonjs", + "lib": ["es6", "dom"], + "jsx": "react", + "strictNullChecks": true, + "noImplicitAny": true, + "noImplicitThis": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true + }, + "files": [ + "index.d.ts", + "react-router-native-tests.tsx" + ] +} diff --git a/types/react-router-native/tslint.json b/types/react-router-native/tslint.json new file mode 100644 index 0000000000..c9a409bbed --- /dev/null +++ b/types/react-router-native/tslint.json @@ -0,0 +1,7 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + // This package uses the Function type, and it will take effort to fix. + "ban-types": false + } +}