diff --git a/employeemanagement/package-lock.json b/employeemanagement/package-lock.json index c4852cafcc7f58aa4ccc6cec7d5ff787a0ebd8e0..84b6d28b49c6eddd0472a7d918eb80e12a45d2f1 100644 --- a/employeemanagement/package-lock.json +++ b/employeemanagement/package-lock.json @@ -8752,6 +8752,11 @@ "minimist": "^1.2.5" } }, + "moment": { + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", + "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==" + }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", diff --git a/employeemanagement/package.json b/employeemanagement/package.json index 708dc4a4d65cc280d856699ac8549d3b9ca5940c..fbe6fd11a7967cae510a98de567b62a476a40af2 100644 --- a/employeemanagement/package.json +++ b/employeemanagement/package.json @@ -7,6 +7,7 @@ "@testing-library/react": "^9.5.0", "@testing-library/user-event": "^7.2.1", "firebase": "^7.18.0", + "moment": "^2.27.0", "react": "^16.13.1", "react-dom": "^16.13.1", "react-redux": "^7.2.1", diff --git a/employeemanagement/src/components/auth/SignIn.js b/employeemanagement/src/components/auth/SignIn.js index e7c085bddba3068e90a8197cb7734d507b07ba73..1e7c2e0482dcd451720f0617e1b5adf9549f5baf 100644 --- a/employeemanagement/src/components/auth/SignIn.js +++ b/employeemanagement/src/components/auth/SignIn.js @@ -40,7 +40,7 @@ class Signin extends Component { </div> <button className="btn btn-primary">Submit</button> <div className="form-group"> - { authError ?<label className="error text-danger">{authError} </label>: null} + { authError ? <label className="error text-danger"> { authError } </label> : null } </div> </form> </div> diff --git a/employeemanagement/src/components/layout/Navbar.js b/employeemanagement/src/components/layout/Navbar.js index 46289893c4f504eca45c8881e0540be71d0809a2..7bd0ec306ee75f1f09a70a9d93088cfe74039e79 100644 --- a/employeemanagement/src/components/layout/Navbar.js +++ b/employeemanagement/src/components/layout/Navbar.js @@ -1,4 +1,6 @@ import React from 'react' +import { connect } from 'react-redux'; +import { signOut } from '../../store/actions/authAction'; const Navbar = (props) => { return( @@ -6,10 +8,15 @@ const Navbar = (props) => { <div className="container"> <h5>Employee Management</h5> <h5 className="text-center">Welcome </h5> - <button type="button" className="btn btn-success btn-sm float-right btn-logout">Logout</button> + <button type="button" onClick={ props.signOut } className="btn btn-success btn-sm float-right btn-logout">Logout</button> </div> </nav> ) } -export default Navbar +const mapDispatchToProps = (dispatch) => { + return{ + signOut: () => dispatch(signOut()) + } +} +export default connect(null, mapDispatchToProps)(Navbar) diff --git a/employeemanagement/src/index.js b/employeemanagement/src/index.js index de54e344cc37dbe8b8ec104770488159f2cf27c1..f20d44a732568df6f344a9ec8e91020b1a449a42 100644 --- a/employeemanagement/src/index.js +++ b/employeemanagement/src/index.js @@ -4,11 +4,11 @@ import './index.css'; import App from './App'; import * as serviceWorker from './serviceWorker'; import { createStore, applyMiddleware, compose } from 'redux'; -import rootReducer from './store/reducers/authReducer'; +import rootReducer from './store/reducers/rootReducer'; import { Provider } from 'react-redux'; import thunk from 'redux-thunk'; import { reduxFirestore, getFirestore, createFirestoreInstance } from 'redux-firestore'; -import { ReactReduxFirebaseProvider, getFirebase } from 'react-redux-firebase'; +import { ReactReduxFirebaseProvider, getFirebase, reactReduxFirebase } from 'react-redux-firebase'; import fbConfig from './config/firebaseConfig'; import firebase from 'firebase/app'; diff --git a/employeemanagement/src/store/actions/authAction.js b/employeemanagement/src/store/actions/authAction.js index 759d978ab6cfdc956eba3b8942b0fe05561263ac..c0b78305c478effe150de498d8b73cf0b10bda0b 100644 --- a/employeemanagement/src/store/actions/authAction.js +++ b/employeemanagement/src/store/actions/authAction.js @@ -11,4 +11,16 @@ export const signIn = (credentials) => { dispatch({ type: 'LOGIN_FAIL', err}) }) } +} + +export const signOut = () => { + return (dispatch, getState, { getFirebase }) => { + const firebase = getFirebase(); + + firebase.auth().signOut().then(() => { + dispatch({ type: 'LOGOUT_SUCCESS'}) + }).catch((err) => { + dispatch({ type: 'LOGOUT_FAIL', err}) + }); + } } \ No newline at end of file diff --git a/employeemanagement/src/store/actions/shiftAction.js b/employeemanagement/src/store/actions/shiftAction.js new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/employeemanagement/src/store/reducers/authReducer.js b/employeemanagement/src/store/reducers/authReducer.js index 74e057e595cc2eded9b3372f6b714ae06203d5c5..4262fcb9f117a85af4d22fa272867ec64f3ea2f0 100644 --- a/employeemanagement/src/store/reducers/authReducer.js +++ b/employeemanagement/src/store/reducers/authReducer.js @@ -3,7 +3,6 @@ const initState = {} const authReducer = (state = initState, action) => { switch (action.type) { case 'LOGIN_FAIL': - console.log(state); return { ...state, authError: 'Login Failed' @@ -14,6 +13,12 @@ const authReducer = (state = initState, action) => { ...state, authError: null } + case 'LOGOUT_FAIL': + console.log('Log Out Error'); + return state; + case 'LOGOUT_SUCCESS': + console.log('Log Out success'); + return state; default: return state; } diff --git a/employeemanagement/src/store/reducers/rootReducer.js b/employeemanagement/src/store/reducers/rootReducer.js index 3d7ca295b8c938f28c6415f320534450af4ee8de..eb1bb8528e3e9744049e39613d3772a49f8d6c59 100644 --- a/employeemanagement/src/store/reducers/rootReducer.js +++ b/employeemanagement/src/store/reducers/rootReducer.js @@ -1,10 +1,12 @@ import authReducer from './authReducer' +import shiftReducer from './shiftReducer' import { combineReducers } from 'redux' import { firestoreReducer } from 'redux-firestore' import { firebaseReducer } from 'react-redux-firebase' const rootReducer = combineReducers({ auth: authReducer, + shift: shiftReducer, firestore: firestoreReducer, firebase: firebaseReducer }); diff --git a/employeemanagement/src/store/reducers/shiftReducer.js b/employeemanagement/src/store/reducers/shiftReducer.js new file mode 100644 index 0000000000000000000000000000000000000000..788290d308e520238a6e1f0a357250f1452c177d --- /dev/null +++ b/employeemanagement/src/store/reducers/shiftReducer.js @@ -0,0 +1,6 @@ +const initState = {} + +const shiftReducer = (state = initState, action) => { + return state +} +export default shiftReducer \ No newline at end of file