From bc8184b1a402af0c3e54edb79b38ed8e09a6798d Mon Sep 17 00:00:00 2001 From: Leon Jiang <35908040+leonyjiang@users.noreply.github.com> Date: Thu, 25 Jun 2020 16:28:00 -0700 Subject: cleanup file structure, add react-navigation & basic routes --- src/App.tsx | 23 +++++++++++++++++++++++ src/__tests__/App-test.tsx | 16 ++++++++++++++++ src/index.ts | 1 + src/routes/Routes.tsx | 24 ++++++++++++++++++++++++ src/routes/index.ts | 2 ++ src/screens/Login.tsx | 27 +++++++++++++++++++++++++++ src/screens/Registration.tsx | 14 ++++++++++++++ src/screens/index.ts | 2 ++ 8 files changed, 109 insertions(+) create mode 100644 src/App.tsx create mode 100644 src/__tests__/App-test.tsx create mode 100644 src/index.ts create mode 100644 src/routes/Routes.tsx create mode 100644 src/routes/index.ts create mode 100644 src/screens/Login.tsx create mode 100644 src/screens/Registration.tsx create mode 100644 src/screens/index.ts (limited to 'src') diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 00000000..6c247f7c --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,23 @@ +/** + * Sample React Native App + * https://github.com/facebook/react-native + * + * Generated with the TypeScript template + * https://github.com/react-native-community/react-native-template-typescript + * + * @format + */ + +import React from 'react'; +import Routes from './routes'; +import {NavigationContainer} from '@react-navigation/native'; + +const App = () => { + return ( + + + + ); +}; + +export default App; diff --git a/src/__tests__/App-test.tsx b/src/__tests__/App-test.tsx new file mode 100644 index 00000000..e362fb52 --- /dev/null +++ b/src/__tests__/App-test.tsx @@ -0,0 +1,16 @@ +/** + * @format + */ + +import 'react-native'; +import React from 'react'; +import App from '../App'; + +// Note: test renderer must be required after react-native. +import renderer from 'react-test-renderer'; + +jest.mock('react-native/Libraries/Animated/src/NativeAnimatedHelper'); + +it('renders correctly', () => { + renderer.create(); +}); diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 00000000..ab7fd11d --- /dev/null +++ b/src/index.ts @@ -0,0 +1 @@ +export {default} from './App'; diff --git a/src/routes/Routes.tsx b/src/routes/Routes.tsx new file mode 100644 index 00000000..9c2efada --- /dev/null +++ b/src/routes/Routes.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import {createStackNavigator} from '@react-navigation/stack'; + +import {Login, Registration} from '../screens'; + +export type RootStackParams = { + Login: undefined; + Registration: undefined; +}; + +const RootStack = createStackNavigator(); + +interface RoutesProps {} + +const Routes: React.FC = ({}) => { + return ( + + + + + ); +}; + +export default Routes; diff --git a/src/routes/index.ts b/src/routes/index.ts new file mode 100644 index 00000000..cfa05fcb --- /dev/null +++ b/src/routes/index.ts @@ -0,0 +1,2 @@ +export {default} from './Routes'; +export * from './Routes'; diff --git a/src/screens/Login.tsx b/src/screens/Login.tsx new file mode 100644 index 00000000..0305b907 --- /dev/null +++ b/src/screens/Login.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import {RouteProp} from '@react-navigation/native'; +import {StackNavigationProp} from '@react-navigation/stack'; +import {View, Text, Button} from 'react-native'; + +import {RootStackParams} from '../routes'; + +type LoginScreenRouteProp = RouteProp; +type LoginScreenNavigationProp = StackNavigationProp; + +interface LoginProps { + route: LoginScreenRouteProp; + navigation: LoginScreenNavigationProp; +} +const Login = ({navigation}: LoginProps) => { + return ( + + Welcome to Tagg! Login page goes here. +