From 7bd8c49305446b107ee41500107c942a939a8c9c Mon Sep 17 00:00:00 2001 From: Ruidy Nemausat Date: Thu, 14 May 2020 17:12:29 +0200 Subject: [PATCH] refactor enhance to store --- src/components/NavBar.tsx | 8 ++------ src/pages/Dashboard.tsx | 7 ++----- src/pages/SignIn.tsx | 8 ++------ src/pages/SignUp.tsx | 8 ++------ src/store/firebase/index.ts | 7 +++++++ 5 files changed, 15 insertions(+), 23 deletions(-) diff --git a/src/components/NavBar.tsx b/src/components/NavBar.tsx index d2622be..a17b763 100644 --- a/src/components/NavBar.tsx +++ b/src/components/NavBar.tsx @@ -3,10 +3,8 @@ import React, {FC} from 'react'; import {Link} from 'react-router-dom'; import * as ROUTES from '../constants/routes'; //Redux -import {compose} from '@reduxjs/toolkit'; -import {connect} from 'react-redux'; -import {withFirebase, WithFirebaseProps} from 'react-redux-firebase'; -import {selectProfile} from '../store/firebase'; +import {WithFirebaseProps} from 'react-redux-firebase'; +import {enhance} from '../store/firebase'; // Style import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {faCode, faSignOutAlt, faUser} from '@fortawesome/free-solid-svg-icons'; @@ -89,6 +87,4 @@ const NavBar: FC = ({firebase, isEmpty, isLoaded}) => { }; /** connect HOC subscribes to the store */ - -const enhance = compose(connect(selectProfile), withFirebase); export default enhance(NavBar); diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index e9dd969..7b21930 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -1,9 +1,7 @@ import React, {FC} from 'react'; // Redux -import {compose} from '@reduxjs/toolkit'; -import {connect} from 'react-redux'; -import {withFirebase, WithFirebaseProps} from 'react-redux-firebase'; -import {selectProfile} from '../store/firebase'; +import {WithFirebaseProps} from 'react-redux-firebase'; +import {enhance} from '../store/firebase'; // Routing import {Link} from 'react-router-dom'; import * as ROUTES from '../constants/routes'; @@ -105,5 +103,4 @@ const Dashboard: FC = ({ ); }; -const enhance = compose(connect(selectProfile), withFirebase); export default enhance(Dashboard); diff --git a/src/pages/SignIn.tsx b/src/pages/SignIn.tsx index 353c66f..cd1635f 100644 --- a/src/pages/SignIn.tsx +++ b/src/pages/SignIn.tsx @@ -1,9 +1,7 @@ import React, {FC, useState} from 'react'; // Redux -import {compose} from '@reduxjs/toolkit'; -import {connect} from 'react-redux'; -import {WithFirebaseProps, withFirebase} from 'react-redux-firebase'; -import {selectProfile} from '../store/firebase'; +import {WithFirebaseProps} from 'react-redux-firebase'; +import {enhance} from '../store/firebase'; // Routing import {Link, Redirect} from 'react-router-dom'; import * as ROUTES from '../constants/routes'; @@ -107,6 +105,4 @@ const SignIn: FC = ({firebase, isEmpty, isLoaded}) => { }; /** subscribe to store and firebase */ -const enhance = compose>(connect(selectProfile), withFirebase); - export default enhance(SignIn); diff --git a/src/pages/SignUp.tsx b/src/pages/SignUp.tsx index 35166f7..2438b9e 100644 --- a/src/pages/SignUp.tsx +++ b/src/pages/SignUp.tsx @@ -3,10 +3,8 @@ import React, {FC, useState} from 'react'; import {Link, Redirect} from 'react-router-dom'; import * as ROUTES from '../constants/routes'; // Redux -import {compose} from 'redux'; -import {connect} from 'react-redux'; -import {withFirebase, WithFirebaseProps} from 'react-redux-firebase'; -import {selectProfile} from '../store/firebase'; +import {WithFirebaseProps} from 'react-redux-firebase'; +import {enhance} from '../store/firebase'; import User, {newUser} from '../models/User'; // Style import GoogleButton from 'react-google-button'; @@ -140,6 +138,4 @@ const SignUp: FC = ({firebase, isEmpty, isLoaded}) => { }; /** subscribe to store and firebase */ -const enhance = compose>(connect(selectProfile), withFirebase); - export default enhance(SignUp); diff --git a/src/store/firebase/index.ts b/src/store/firebase/index.ts index 24b448e..ca0a975 100644 --- a/src/store/firebase/index.ts +++ b/src/store/firebase/index.ts @@ -1,6 +1,13 @@ +import {FC} from 'react'; +// Redux +import {compose} from '@reduxjs/toolkit'; +import {connect} from 'react-redux'; +import {withFirebase} from 'react-redux-firebase'; import {RootState} from '..'; /** export firebase authentication */ export const selectAuthState = (state: RootState) => state.firebase.auth; /** export current user profile */ export const selectProfile = (state: RootState) => state.firebase.profile; +/** subscribe to firebase and profile */ +export const enhance = compose(connect(selectProfile), withFirebase);