26
loading...
This website collects cookies to deliver better user experience
const Expenses = () => {
const [expenses] = useState([
{
title: "First expense",
description: "This is my first expense",
status: false
}
]);
return (
<div>
<h1>Expenses</h1>
{expenses.map(note => {
return (
<div>
<h1>{expense.title}</h1>
<h3>{expense.description}</h3>
<p>{expense.status? "Paid!" : "Unpaid"}</p>
</div>
);
})}
</div>
);
};
const Expenses = () => {
const [expenses] = useState([
{
title: "First expense",
description: "This is my first expense",
status: false
}
]);
return (
<div>
<h1>Expenses</h1>
{expenses.map(({ title, description, done }) => {
return <Expense title={title} description={description} status={status} />;
})}
</div>
);
};
const Expense = ({ title, description, status}) => {
return (
<div>
<Title title={title} />
<Description description={description} />
<status done={status} />
</div>
);
};
const Title = ({ title }) => {
return <h1>{title}</h1>;
};
const Description = ({ description }) => {
return <h3>{description}</h3>;
};
const Status= ({ status}) => {
return <h3>{status}</h3>;
};
const ExpensesContext = createContext([]);
import React from 'react';
const AuthContext = React.createContext({
isLoggedIn: false
});
export default AuthContext;
import React, { useState, useEffect } from 'react';
import Login from './components/Login/Login';
import Home from './components/Home/Home';
import MainHeader from './components/MainHeader/MainHeader';
import AuthContext from './store/auth-context';
function App() {
const [isLoggedIn, setIsLoggedIn] = useState(false);
return (
<AuthContext.Provider
value={{
isLoggedIn: isLoggedIn,
}}
>
<MainHeader onLogout={logoutHandler} />
<main>
{!isLoggedIn && <Login onLogin={loginHandler} />}
{isLoggedIn && <Home onLogout={logoutHandler} />}
</main>
</AuthContext.Provider>
);
}
export default App;
import React from 'react';
import AuthContext from '../../store/auth-context';
const Navigation = (props) => {
return (
<AuthContext.Consumer>
{(ctx) => {
return (
<nav className={classes.nav}>
<ul>
{ctx.isLoggedIn && (
<li>
<a href="/">Users</a>
</li>
)}
{ctx.isLoggedIn && (
<li>
<a href="/">Admin</a>
</li>
)}
{ctx.isLoggedIn && (
<li>
<button onClick={props.onLogout}>Logout</button>
</li>
)}
</ul>
</nav>
);
}}
</AuthContext.Consumer>
);
};
export default Navigation;
import React, { useContext } from 'react';
const Navigation = (props) => {
const ctx = useContext(AuthContext);
return (
<nav className={classes.nav}>
<ul>
{ctx.isLoggedIn && (
<li>
<a href="/">Users</a>
</li>
)}
{ctx.isLoggedIn && (
<li>
<a href="/">Admin</a>
</li>
)}
{ctx.isLoggedIn && (
<li>
<button onClick={props.onLogout}>Logout</button>
</li>
)}
</ul>
</nav>
);
};
export default Navigation;