@@ -11,49 +11,37 @@ import { useFormatMessage } from 'hooks';
1111const User = ( ) => {
1212 const { id } = useParams ( ) ;
1313
14- const { success, usersList } = useSelector (
14+ const { success, usersList, userData , error } = useSelector (
1515 ( state ) => ( {
1616 success : state . users . success ,
17- usersList : state . users . data ,
17+ usersList : state . users . list ,
18+ userData : state . users . user ,
19+ error : state . users . error
1820 } ) ,
1921 shallowEqual
2022 ) ;
2123
22- const [ user , setUser ] = useState ( {
23- name : '' ,
24- email : '' ,
25- location : '' ,
26- isAdmin : false ,
27- file : null ,
28- createdAt : new Date ( ) . toDateString ( ) ,
29- } ) ;
24+ const [ user , setUser ] = useState ( userData ) ;
3025
3126 const dispatch = useDispatch ( ) ;
3227
3328 useEffect ( ( ) => {
3429 if ( id ) {
35- const thisUser = usersList
36- ?. filter ( ( fetchedUser ) => fetchedUser . id === id )
37- . pop ( ) ;
38- if ( thisUser ) {
39- setUser ( thisUser ) ;
30+ const userFetched = usersList ?. find ( ( fetchedUser ) => fetchedUser . id === id ) ;
31+ if ( userFetched ) {
32+ setUser ( userFetched ) ;
33+ } else if ( userData . id === id ) {
34+ setUser ( userData ) ;
4035 } else {
4136 dispatch ( fetchUsers ( id ) ) ;
4237 }
4338 }
44- } , [ id ] ) ;
45-
46- useEffect ( ( ) => {
47- const thisUser = usersList
48- ?. filter ( ( fetchedUser ) => fetchedUser . id === id )
49- . pop ( ) ;
50- setUser ( thisUser ) ;
51- } , [ usersList ] ) ;
39+ } , [ id , userData ] ) ;
5240
5341 const isEditing = ! ! id ;
5442
5543 const userForm =
56- ! user . name && id ? (
44+ ! user && id ? (
5745 < ClipLoader />
5846 ) : (
5947 < UserForm
@@ -63,7 +51,7 @@ const User = () => {
6351 />
6452 ) ;
6553
66- const redirect = ( user . error || success ) && < Redirect to = { paths . USERS } /> ;
54+ const redirect = ( error || success ) && < Redirect to = { paths . USERS } /> ;
6755
6856 const editUserMessage = useFormatMessage ( 'User.editUser' ) ;
6957
0 commit comments