React
by gergana
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-router/5.0.0/react-router.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-router-dom/5.0.0/react-router-dom.min.js"></script>
<div id="app"></div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
height: 100%;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
height: 100%;
}
h2 {
font-weight: bold;
margin-bottom: 15px;
}
.done {
color: rgba(0, 0, 0, 0.3);
text-decoration: line-through;
}
input {
margin-right: 5px;
}
React
import { NavLink, Switch, Route } from 'react-router-dom';
const Login = () => {
return (<p>Login</p>);
}
const Home = () => {
return (<p>Home</p>);
}
class Navbar extends React.Component {
constructor(props) {
super(props)
this.state = {
isLoginPageOn: false,
}
}
componentWillReceiveProps(nextProps) {
if (this.props.location.pathname !== nextProps.location.pathname) {
if (nextProps.location.pathname === '/login') {
this.setState({ isloginPageOn: true });
} else {
this.setState({ isloginPageOn: false });
}
}
}
render() {
const isloginPageOn = this.state.isloginPageOn;
let navlink;
console.log(isloginPageOn)
if (isloginPageOn) {
navlink = <NavLink to='/' className="rightButton">Strona główna</NavLink>;
} else {
navlink = <NavLink to='/login' className="rightButton">Logowanie</NavLink>;
}
return (
<div className="topnav">
{navlink}
</div>
)
}
}
class App extends React.Component {
render() {
return(
<Navbar/>
<Switch>
<Route to='/' component={Home} />
<Route to='/login' component={Login} />
</Switch>
)
}
}
ReactDOM.render(<App />, document.querySelector("#app"))