1- // @flow
2-
3- // #region imports
41import React , { Component } from 'react' ;
5- import { AuthContextProvider , type AuthData , type User } from '../context' ;
2+ import { AuthContextProvider , AuthData , User } from '../context' ;
63import auth from '../../../services/auth' ;
74import { devToolsStore } from '../../withDevTools' ;
8- // #endregion
95
10- // #region flow types
6+ // #region types
117export type AuthProviderProps = {
12- initialState : { } & AuthData ,
8+ initialState : { } & AuthData ;
139} ;
1410export type AuthProviderState = {
15- checkIsAuthenticated : ( ) => boolean ,
16- checkTokenIsExpired : ( ) => boolean ,
17- setToken : ( token : string ) => any ,
18- setUserInfo : ( user : User ) => any ,
19- disconnectUser : ( ) => boolean ,
20-
21- ...any ,
11+ checkIsAuthenticated : ( ) => boolean ;
12+ checkTokenIsExpired : ( ) => boolean ;
13+ setToken : ( token : string ) => any ;
14+ setUserInfo : ( user : User ) => any ;
15+ disconnectUser : ( ) => boolean ;
2216} & AuthData ;
2317// #endregion
2418
2519// #region constants
26- const initialState = {
27- token : null ,
28- user : null ,
20+ const initialState : AuthData = {
21+ token : '' ,
22+ user : undefined ,
2923 isAuthenticated : false ,
3024 isExpiredToken : true ,
31- lastAuthDate : null ,
25+ lastAuthDate : undefined ,
3226} ;
3327// #endregion
3428
3529// #region PROVIDER component
3630export default class AuthProvider extends Component <
3731 AuthProviderProps ,
38- AuthProviderState ,
32+ AuthProviderState
3933> {
4034 static defaultProps = {
4135 initialState : {
@@ -44,7 +38,7 @@ export default class AuthProvider extends Component<
4438 } ;
4539
4640 // #region lifecyle
47- constructor ( props ) {
41+ constructor ( props : AuthProviderProps ) {
4842 super ( props ) ;
4943
5044 // initialize state in constructor (otherwise function won't be passed)
@@ -67,15 +61,14 @@ export default class AuthProvider extends Component<
6761 ...this . state ,
6862 } }
6963 >
70- { ' ' }
71- { children } { ' ' }
64+ { children }
7265 </ AuthContextProvider >
7366 ) ;
7467 }
7568 // #endregion
7669
7770 checkIsAuthenticated = ( ) : boolean => {
78- const checkUserHasId = user => user && user . id ;
71+ const checkUserHasId = ( user : User ) => user && user . id ;
7972 const user = auth . getUserInfo ( ) ? auth . getUserInfo ( ) : null ;
8073 const isAuthenticated = auth . getToken ( ) && checkUserHasId ( user ) ;
8174
@@ -119,7 +112,7 @@ export default class AuthProvider extends Component<
119112 this . setState ( { token, isAuthenticated : true } ) ;
120113 } ;
121114
122- setUserInfo = ( user : User = null ) => {
115+ setUserInfo = ( user : User ) => {
123116 if ( typeof user === 'object' ) {
124117 auth . setUserInfo ( user ) ;
125118
0 commit comments