This file contains hidden or 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
| // @flow | |
| import React, { Component } from 'react'; | |
| import { Field, reduxForm } from 'redux-form'; | |
| import { Link } from 'react-router'; | |
| import { css, StyleSheet } from 'aphrodite'; | |
| import Input from '../Input'; | |
| const styles = StyleSheet.create({ | |
| card: { | |
| maxWidth: '500px', |
This file contains hidden or 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
| // @flow | |
| import React from 'react'; | |
| type Props = { | |
| input: Object, | |
| label?: string, | |
| type?: string, | |
| placeholder?: string, | |
| style?: Object, | |
| meta: Object, |
This file contains hidden or 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
| import { reset } from 'redux-form'; | |
| import api from '../api'; | |
| function setCurrentUser(dispatch, response) { | |
| localStorage.setItem('token', JSON.stringify(response.meta.token)); | |
| dispatch({ type: 'AUTHENTICATION_SUCCESS', response }); | |
| } | |
| export function login(data, router) { | |
| return dispatch => api.post('/sessions', data) |
This file contains hidden or 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
| const API = process.env.REACT_APP_API_URL; | |
| function headers() { | |
| const token = JSON.parse(localStorage.getItem('token')); | |
| return { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| Authorization: `Bearer: ${token}`, | |
| }; |
This file contains hidden or 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
| REACT_APP_API_URL=http://localhost:4000/api |
This file contains hidden or 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
| const initialState = { | |
| isAuthenticated: false, | |
| currentUser: {}, | |
| }; | |
| export default function (state = initialState, action) { | |
| switch (action.type) { | |
| case 'AUTHENTICATION_SUCCESS': | |
| return { | |
| ...state, |
This file contains hidden or 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
| import { combineReducers } from 'redux'; | |
| import { reducer as form } from 'redux-form'; | |
| import session from './session'; | |
| const appReducer = combineReducers({ | |
| form, | |
| session, | |
| }); | |
| export default function (state, action) { |
This file contains hidden or 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
| // @flow | |
| import React, { Component, PropTypes } from 'react'; | |
| import { connect } from 'react-redux'; | |
| import { Link } from 'react-router'; | |
| import { logout } from '../../actions/session'; | |
| import Navbar from '../../components/Navbar'; | |
| type Props = { | |
| logout: () => void, | |
| currentUser: Object, |
This file contains hidden or 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
| // @flow | |
| import React, { Component } from 'react'; | |
| import { BrowserRouter, Match, Miss } from 'react-router'; | |
| import { connect } from 'react-redux'; | |
| import { authenticate } from '../../actions/session'; | |
| import Home from '../Home'; | |
| import NotFound from '../../components/NotFound'; | |
| import Login from '../Login'; | |
| import Signup from '../Signup'; |
This file contains hidden or 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
| export function authenticate() { | |
| return dispatch => api.post('/sessions/refresh') | |
| .then((response) => { | |
| setCurrentUser(dispatch, response); | |
| }) | |
| .catch(() => { | |
| localStorage.removeItem('token'); | |
| window.location = '/login'; | |
| }); | |
| } |