refactor enhance to store

This commit is contained in:
Ruidy Nemausat 2020-05-14 17:12:29 +02:00
parent 6215346269
commit 7bd8c49305
5 changed files with 15 additions and 23 deletions

View file

@ -3,10 +3,8 @@ import React, {FC} from 'react';
import {Link} from 'react-router-dom'; import {Link} from 'react-router-dom';
import * as ROUTES from '../constants/routes'; import * as ROUTES from '../constants/routes';
//Redux //Redux
import {compose} from '@reduxjs/toolkit'; import {WithFirebaseProps} from 'react-redux-firebase';
import {connect} from 'react-redux'; import {enhance} from '../store/firebase';
import {withFirebase, WithFirebaseProps} from 'react-redux-firebase';
import {selectProfile} from '../store/firebase';
// Style // Style
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
import {faCode, faSignOutAlt, faUser} from '@fortawesome/free-solid-svg-icons'; import {faCode, faSignOutAlt, faUser} from '@fortawesome/free-solid-svg-icons';
@ -89,6 +87,4 @@ const NavBar: FC<IProps> = ({firebase, isEmpty, isLoaded}) => {
}; };
/** connect HOC subscribes to the store */ /** connect HOC subscribes to the store */
const enhance = compose<FC>(connect(selectProfile), withFirebase);
export default enhance(NavBar); export default enhance(NavBar);

View file

@ -1,9 +1,7 @@
import React, {FC} from 'react'; import React, {FC} from 'react';
// Redux // Redux
import {compose} from '@reduxjs/toolkit'; import {WithFirebaseProps} from 'react-redux-firebase';
import {connect} from 'react-redux'; import {enhance} from '../store/firebase';
import {withFirebase, WithFirebaseProps} from 'react-redux-firebase';
import {selectProfile} from '../store/firebase';
// Routing // Routing
import {Link} from 'react-router-dom'; import {Link} from 'react-router-dom';
import * as ROUTES from '../constants/routes'; import * as ROUTES from '../constants/routes';
@ -105,5 +103,4 @@ const Dashboard: FC<IProps> = ({
); );
}; };
const enhance = compose<FC>(connect(selectProfile), withFirebase);
export default enhance(Dashboard); export default enhance(Dashboard);

View file

@ -1,9 +1,7 @@
import React, {FC, useState} from 'react'; import React, {FC, useState} from 'react';
// Redux // Redux
import {compose} from '@reduxjs/toolkit'; import {WithFirebaseProps} from 'react-redux-firebase';
import {connect} from 'react-redux'; import {enhance} from '../store/firebase';
import {WithFirebaseProps, withFirebase} from 'react-redux-firebase';
import {selectProfile} from '../store/firebase';
// Routing // Routing
import {Link, Redirect} from 'react-router-dom'; import {Link, Redirect} from 'react-router-dom';
import * as ROUTES from '../constants/routes'; import * as ROUTES from '../constants/routes';
@ -107,6 +105,4 @@ const SignIn: FC<IProps> = ({firebase, isEmpty, isLoaded}) => {
}; };
/** subscribe to store and firebase */ /** subscribe to store and firebase */
const enhance = compose<FC<IProps>>(connect(selectProfile), withFirebase);
export default enhance(SignIn); export default enhance(SignIn);

View file

@ -3,10 +3,8 @@ import React, {FC, useState} from 'react';
import {Link, Redirect} from 'react-router-dom'; import {Link, Redirect} from 'react-router-dom';
import * as ROUTES from '../constants/routes'; import * as ROUTES from '../constants/routes';
// Redux // Redux
import {compose} from 'redux'; import {WithFirebaseProps} from 'react-redux-firebase';
import {connect} from 'react-redux'; import {enhance} from '../store/firebase';
import {withFirebase, WithFirebaseProps} from 'react-redux-firebase';
import {selectProfile} from '../store/firebase';
import User, {newUser} from '../models/User'; import User, {newUser} from '../models/User';
// Style // Style
import GoogleButton from 'react-google-button'; import GoogleButton from 'react-google-button';
@ -140,6 +138,4 @@ const SignUp: FC<IProps> = ({firebase, isEmpty, isLoaded}) => {
}; };
/** subscribe to store and firebase */ /** subscribe to store and firebase */
const enhance = compose<FC<IProps>>(connect(selectProfile), withFirebase);
export default enhance(SignUp); export default enhance(SignUp);

View file

@ -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 '..'; import {RootState} from '..';
/** export firebase authentication */ /** export firebase authentication */
export const selectAuthState = (state: RootState) => state.firebase.auth; export const selectAuthState = (state: RootState) => state.firebase.auth;
/** export current user profile */ /** export current user profile */
export const selectProfile = (state: RootState) => state.firebase.profile; export const selectProfile = (state: RootState) => state.firebase.profile;
/** subscribe to firebase and profile */
export const enhance = compose<FC>(connect(selectProfile), withFirebase);