# Components

## Components

* [App](#app)
* [Login](#login)
* [OrderDetail](#orderdetail)

### App

* Location: The UI can be found under `src/App.js`&#x20;
* Working: Configures Native base, Fonts, Push Notification, Apollo, Authentication and Navigation.
* Result: Everything is configured loads the next view depending on if the user is authenticated or not. If the user is not authenticated will show tutorial screen first else it will show Menu Screen.

### Login

* Location: The UI can be found under `src/screens/Login/Login.js` Its [mutation](https://graphql.org/learn/queries/#mutations) can be found under `src/apollo/server.js` with constant `login`&#x20;
* Working: Logins User using Google, Facebook or Manual Registration. A separate component for ForgotPassword is also present its component can be found `src/components/ForgotPassword` Its [mutation](https://graphql.org/learn/queries/#mutations) can be found under `src/apollo/server.js` with constant `forgotPassword`
* Result: Logins User with validation. If a user uses forgotPassword an email will be sent to him with reset link for changing his/her password.

### OrderDetail

* Location: The UI can be found under `src/screens/OrderDetail/OrderDetail.js` It has Apollo constants of `orderItem` its of type fragment located in `src/apollo/client.js`&#x20;
* Working:  It shows OrderDetail to the rider where the status of the order can be changed by the rider.
