diff options
author | Eugene Sokolov <eug-vs@keemail.me> | 2020-06-15 15:55:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-15 15:55:16 +0300 |
commit | 185ab6f4025ff41313b12efb8cff49009c1af85e (patch) | |
tree | c394f99472b4c0b7ee95bec1813832c922dd5477 /src/index.tsx | |
parent | 987c050faa5353ae2f250d82055d6685fefa58f7 (diff) | |
parent | 2a65284a385915818ca5f3e3b7354554e19af9cb (diff) | |
download | which-ui-185ab6f4025ff41313b12efb8cff49009c1af85e.tar.gz |
Merge pull request #36 from ilyayudovin/other-profiles
Profiles
Diffstat (limited to 'src/index.tsx')
-rw-r--r-- | src/index.tsx | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/src/index.tsx b/src/index.tsx index 55bf773..876491d 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -13,9 +13,10 @@ import Header from './components/Header/Header'; import ProfilePage from './pages/ProfilePage/ProfilePage'; import FeedPage from './pages/FeedPage/FeedPage'; import AuthPage from './pages/AuthPage/AuthPage'; -import { User } from './types'; +import { User, Page } from './types'; import { get } from './requests'; + const theme = createMuiTheme({ palette: { primary: { @@ -33,13 +34,28 @@ const useStyles = makeStyles({ }); const App: React.FC = () => { - const [page, setPage] = useState('feed'); const [user, setUser] = React.useState<User | undefined>(); + const [page, setPage] = useState<Page>({ prefix: 'feed', id: '' }); const classes = useStyles(); + const navigate = (prefix: string, id?: string): void => { + if (prefix === 'profile' && !id && !user) { + setPage({ + prefix: 'auth', + id: '' + }); + } else { + setPage({ + prefix, + id: (id || user?._id || '') + }); + } + }; + const logOut = () => { localStorage.removeItem('userId'); setUser(undefined); + navigate('auth'); }; useEffect(() => { @@ -54,17 +70,11 @@ const App: React.FC = () => { return ( <ThemeProvider theme={theme}> <CssBaseline /> - <Header setPage={setPage} /> + <Header navigate={navigate} /> <div className={classes.root}> - { - page === 'profile' - ? ( - user - ? <ProfilePage logOut={logOut} id={user?._id} /> - : <AuthPage setUser={setUser} /> - ) - : <FeedPage /> - } + { page.prefix === 'profile' && <ProfilePage logOut={logOut} id={page.id} navigate={navigate} /> } + { page.prefix === 'feed' && <FeedPage navigate={navigate} /> } + { page.prefix === 'auth' && <AuthPage setUser={setUser} navigate={navigate} /> } </div> </ThemeProvider> ); |