From c311c538a3442aed8d77449736f28be66feea57c Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sun, 14 Jun 2020 22:42:52 +0300 Subject: feat: configure navigation --- src/pages/AuthPage/AuthPage.tsx | 5 +++-- src/pages/AuthPage/SignInForm.tsx | 4 +++- src/pages/FeedPage/FeedPage.tsx | 8 ++++++-- src/pages/ProfilePage/ProfilePage.tsx | 9 +++++---- 4 files changed, 17 insertions(+), 9 deletions(-) (limited to 'src/pages') diff --git a/src/pages/AuthPage/AuthPage.tsx b/src/pages/AuthPage/AuthPage.tsx index d9c43d3..82d468d 100644 --- a/src/pages/AuthPage/AuthPage.tsx +++ b/src/pages/AuthPage/AuthPage.tsx @@ -4,10 +4,11 @@ import SignInForm from './SignInForm'; interface PropTypes { setUser: (newUser: User | undefined) => void; + navigate: (prefix: string, id: string) => void; } -const AuthPage: React.FC = ({ setUser }) => { - return ; +const AuthPage: React.FC = ({ setUser, navigate }) => { + return ; }; export default AuthPage; diff --git a/src/pages/AuthPage/SignInForm.tsx b/src/pages/AuthPage/SignInForm.tsx index 6e27535..b7696e7 100644 --- a/src/pages/AuthPage/SignInForm.tsx +++ b/src/pages/AuthPage/SignInForm.tsx @@ -7,6 +7,7 @@ import { get } from '../../requests'; interface PropTypes { setUser: (newUser: User) => void; + navigate: (prefix: string, id: string) => void; } const useStyles = makeStyles(theme => ({ @@ -22,7 +23,7 @@ const useStyles = makeStyles(theme => ({ } })); -const SignInForm: React.FC = ({ setUser }) => { +const SignInForm: React.FC = ({ setUser, navigate }) => { const classes = useStyles(); const inputRef = useRef(); @@ -33,6 +34,7 @@ const SignInForm: React.FC = ({ setUser }) => { const user = response.data[0]; setUser(user); localStorage.setItem('userId', user._id); + navigate('profile', user._id); }); } }; diff --git a/src/pages/FeedPage/FeedPage.tsx b/src/pages/FeedPage/FeedPage.tsx index 03bacfd..fd75190 100644 --- a/src/pages/FeedPage/FeedPage.tsx +++ b/src/pages/FeedPage/FeedPage.tsx @@ -3,7 +3,11 @@ import { Poll } from '../../types'; import Feed from '../../components/Feed/Feed'; import { get } from '../../requests'; -const FeedPage: React.FC = () => { +interface PropTypes { + navigate: (prefix: string, id: string) => void; +} + +const FeedPage: React.FC = ({ navigate }) => { const [polls, setPolls] = useState([]); useEffect(() => { @@ -12,7 +16,7 @@ const FeedPage: React.FC = () => { }); }, []); - return ; + return ; }; export default FeedPage; diff --git a/src/pages/ProfilePage/ProfilePage.tsx b/src/pages/ProfilePage/ProfilePage.tsx index 984fb1e..46637cb 100644 --- a/src/pages/ProfilePage/ProfilePage.tsx +++ b/src/pages/ProfilePage/ProfilePage.tsx @@ -6,10 +6,11 @@ import { get } from '../../requests'; interface PropTypes { logOut: () => void; + navigate: (prefix: string, id: string) => void; id: string; } -const ProfilePage: React.FC = ({ logOut, id }) => { +const ProfilePage: React.FC = ({ logOut, id, navigate }) => { const [userInfo, setUserInfo] = useState(); const [polls, setPolls] = useState([]); @@ -17,19 +18,19 @@ const ProfilePage: React.FC = ({ logOut, id }) => { get(`/users/${id}`).then(response => { setUserInfo(response.data); }); - },[]); + }, [id]); useEffect(() => { get(`/profiles/${id}`).then(response => { setPolls(response.data); }); - },[]); + }, [id]); return ( <> - + ); }; -- cgit v1.2.3 From 2a65284a385915818ca5f3e3b7354554e19af9cb Mon Sep 17 00:00:00 2001 From: eug-vs Date: Mon, 15 Jun 2020 15:52:40 +0300 Subject: style: fix eslint errors --- src/pages/ProfilePage/ProfilePage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/pages') diff --git a/src/pages/ProfilePage/ProfilePage.tsx b/src/pages/ProfilePage/ProfilePage.tsx index 46637cb..0f5fb2b 100644 --- a/src/pages/ProfilePage/ProfilePage.tsx +++ b/src/pages/ProfilePage/ProfilePage.tsx @@ -1,4 +1,4 @@ -import React, { useState,useEffect } from 'react'; +import React, { useState, useEffect } from 'react'; import { User, Poll } from '../../types'; import ProfileInfo from './ProfileInfo'; import Feed from '../../components/Feed/Feed'; -- cgit v1.2.3