ilhamdev's picture
Upload folder using huggingface_hub
ece5841 verified
import { createBrowserRouter, redirect, RouterProvider } from 'react-router-dom'
import MainLayout from './layout/MainLayout'
import Home from './pages/Home'
import Settings from './pages/Settings/Settings'
import Friends from './pages/Settings/Friends'
import Password from './pages/Settings/Password'
import Themes from './pages/Settings/Themes'
import PlayLayout from './pages/Play/Layout'
import PlayFriend from './pages/Play/PlayFriend'
import Play from './pages/Play/Play'
import AuthenticationPage from './pages/Authentication/Authentication'
import ChallengeFriend, { playFriendAction } from './pages/Play/ChallengeFriend'
import Profile, { action as profileAction } from './pages/Settings/Profile'
import { getAuthToken, getUserData } from './utils/auth'
import Computer, { playComputerAction } from './pages/Play/Computer'
import ComputerGame from './pages/Play/ComputerGame'
import MultiplayerGame from './pages/Play/MultiplayerGame'
const router = createBrowserRouter([{
path: '/',
element: <MainLayout />,
loader: () => getUserData() || redirect('/login'),
children: [
{ index: true, element: <Home /> },
{ path: 'home', element: <Home /> },
{
path: 'play', element: <PlayLayout />, children: [
{ index: true, element: <Play /> },
{ path: 'friend/:friend_username', element: <ChallengeFriend />, action: playFriendAction },
{ path: 'friend', element: <PlayFriend /> },
{ path: 'computer', element: <Computer />, action: playComputerAction },
{ path: 'online', element: <div>Online</div> }
]
},
{
path: "game/friend/:roomID", element: <MultiplayerGame />
},
{
path: "game/computer", element: <ComputerGame />
},
{
path: 'settings', element: <Settings />, children: [
{ index: true, element: <Profile />, action: profileAction },
{ path: 'profile', element: <Profile />, action: profileAction },
{ path: 'themes', element: <Themes /> },
{ path: 'password', element: <Password /> },
{ path: 'friends', element: <Friends /> },
]
},
]
},
{
path: '/login', element: <AuthenticationPage isLogin={true} />, loader: () => { if (getAuthToken()) return redirect('/home'); else return null; }
}, {
path: '/signup', element: <AuthenticationPage isLogin={false} />, loader: () => { if (getAuthToken()) return redirect('/signup'); else return null; }
}, {
path: '/logout', loader: () => { getAuthToken() || redirect('/home') }
}]);
function App() {
return (
<RouterProvider router={router} />
)
}
export default App