Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 113 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"react": "^19.1.1",
"react-dom": "^19.1.1",
"react-icons": "^5.5.0",
"react-router-dom": "^7.9.4",
"tailwind-variants": "^3.1.1",
"tailwindcss": "^4.1.14"
},
Expand Down
20 changes: 15 additions & 5 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
import './App.css';
import { Outlet, useLocation } from 'react-router-dom';
import Navbar from './components/Navbar';
import Footer from './components/Footer';

function App() {
const location = useLocation();
const { pathname } = location;
const hideNav = ['/login', '/signup', '/onboarding'].includes(pathname);
const showHomeNav = ['/'].includes(pathname);
const hideFooter = ['/login', '/signup', '/onboarding'].includes(pathname);

return (
<div className="min-h-screen bg-emerald-100 flex items-center justify-center">
<h1 className="text-4xl font-bold text-lime-500">
Mint Chips - Tailwind works! πŸŽ‰
</h1>
<div>
{!hideNav && (showHomeNav ? <Navbar /> : <Navbar />)}
<main>
<Outlet />
</main>
{!hideFooter && <Footer />}
</div>
);
}
Expand Down
9 changes: 9 additions & 0 deletions src/components/Footer.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function Footer() {
return (
<div>
<footer>Footer</footer>
</div>
);
}

export default Footer;
9 changes: 9 additions & 0 deletions src/components/Navbar.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function Navbar() {
return (
<div>
<nav>Nav bar</nav>
</div>
);
}

export default Navbar;
32 changes: 30 additions & 2 deletions src/main.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,38 @@
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import './index.css';
import App from './App.jsx';
import { createBrowserRouter, RouterProvider } from 'react-router-dom';
import Home from './pages/Home';
import Onboarding from './pages/Onboarding';
import Achievements from './pages/Achievements';
import Community from './pages/Community';
import Dashboard from './pages/Dashboard';
import Error from './pages/Error';
import Login from './pages/Login';
import Signup from './pages/Signup';
import App from './App';

const router = createBrowserRouter([
{
path: '/',
element: <App />,
children: [
{ index: true, element: <Home /> },
{ path: 'dashboard', element: <Dashboard /> },
{ path: 'community', element: <Community /> },
{ path: 'signup', element: <Signup /> },
{ path: 'login', element: <Login /> },
{ path: 'onboarding', element: <Onboarding /> },
{ path: 'achievements', element: <Achievements /> },
],
},
{
path: '*',
element: <Error />,
},
]);
createRoot(document.getElementById('root')).render(
<StrictMode>
<App />
<RouterProvider router={router} />
</StrictMode>
);
9 changes: 9 additions & 0 deletions src/pages/Achievements.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function Achievements() {
return (
<div className="min-h-screen bg-emerald-100 flex items-center justify-center">
<h1 className="text-4xl font-bold text-lime-500">Achievements! πŸŽ‰</h1>
</div>
);
}

export default Achievements;
9 changes: 9 additions & 0 deletions src/pages/Community.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function Community() {
return (
<div className="min-h-screen bg-emerald-100 flex items-center justify-center">
<h1 className="text-4xl font-bold text-lime-500">Community Page! πŸŽ‰</h1>
</div>
);
}

export default Community;
9 changes: 9 additions & 0 deletions src/pages/Dashboard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function Dashboard() {
return (
<div className="min-h-screen bg-emerald-100 flex items-center justify-center">
<h1 className="text-4xl font-bold text-lime-500">Dashboard Page! πŸŽ‰</h1>
</div>
);
}

export default Dashboard;
11 changes: 11 additions & 0 deletions src/pages/Error.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { Link } from 'react-router-dom';
function Error() {
return (
<div className="min-h-screen bg-emerald-100 flex items-center justify-center">
<h1 className="text-4xl font-bold text-lime-500">Error Page! πŸŽ‰</h1>
<Link to={'/'}> Return to Home Page</Link>
</div>
);
}

export default Error;
29 changes: 29 additions & 0 deletions src/pages/Home.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { Link } from 'react-router-dom';

function Home() {
return (
<div className="min-h-screen bg-emerald-100 flex items-center justify-center">
<h1 className="text-4xl font-bold text-lime-500">Home Page! πŸŽ‰</h1>
<Link to="/achievements" className="m-4">
Achievements{' '}
</Link>
<Link to="/community" className="m-4">
Community{' '}
</Link>
<Link to="/dashboard" className="m-4">
Dashboard{' '}
</Link>
<Link to="login" className="m-4">
Login{' '}
</Link>
<Link to="/onboarding" className="m-4">
Onboarding{' '}
</Link>
<Link to="/signup" className="m-4">
Sign up{' '}
</Link>
</div>
);
}

export default Home;
9 changes: 9 additions & 0 deletions src/pages/Login.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function Login() {
return (
<div className="min-h-screen bg-emerald-100 flex items-center justify-center">
<h1 className="text-4xl font-bold text-lime-500">Login Page! πŸŽ‰</h1>
</div>
);
}

export default Login;
9 changes: 9 additions & 0 deletions src/pages/Onboarding.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function Onboarding() {
return (
<div className="min-h-screen bg-emerald-100 flex items-center justify-center">
<h1 className="text-4xl font-bold text-lime-500">Onboarding Page! πŸŽ‰</h1>
</div>
);
}

export default Onboarding;
9 changes: 9 additions & 0 deletions src/pages/Signup.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function Signup() {
return (
<div className="min-h-screen bg-emerald-100 flex items-center justify-center">
<h1 className="text-4xl font-bold text-lime-500">Sign up Page! πŸŽ‰</h1>
</div>
);
}

export default Signup;