Restructuring folders [ Broken ]

This commit is contained in:
2018-10-22 17:21:29 +11:00
parent 36b7b8629e
commit 776395520d
148 changed files with 238 additions and 198 deletions

View File

@ -0,0 +1,90 @@
// Copyright (c) 2018 Dominic Masters
//
// MIT License
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import React from 'react';
import { connect } from 'react-redux';
import { NavLink } from 'react-router-dom';
import Language from './../../language/Language';
import * as MenuActions from './../../actions/MenuActions';
const HamburerMenuItem = function(props) {
return (
<li className={"c-hamburger-menu__link c-hamburger-menu__link--"+props.link}>
<NavLink to={ props.to } className="c-hamburger-menu__link-link">
{ Language.get(props.lang) }
</NavLink>
</li>
);
}
class HamburgerMenu extends React.Component {
constructor(props) {
super(props);
}
render() {
let clazz = "c-hamburger-menu";
if(this.props.open) clazz += " is-open";
if(this.props.className) clazz += " " + this.props.className;
return (
<div className={clazz}>
<button
type="button"
className="c-hamburger-menu__button"
onClick={this.props.toggleMenu}
>
<img
src={ require('./../../images/icons/hamburger.svg') }
className="c-hamburger-menu__icon"
/>
</button>
<div className="c-hamburger-menu__menu">
<ul className="c-hamburger-menu__links">
<HamburerMenuItem to="/" lang="navbar.home" link="home" />
<HamburerMenuItem to="/contact" lang="navbar.contact" link="contact" />
</ul>
</div>
</div>
);
}
}
const mapStateToProps = function(state) {
return {
open: state.menu.open,
language: state.language.code
}
}
const mapDispatchToProps = function(dispatch) {
return {
toggleMenu: function(theme) {
dispatch(MenuActions.toggleMenu());
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(HamburgerMenu);

View File

@ -0,0 +1,84 @@
// Copyright (c) 2018 Dominic Masters
//
// MIT License
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import React from 'react';
import { withRouter } from 'react-router';
import { connect } from 'react-redux';
import { NavLink } from 'react-router-dom'
import PageBoundary from './../../page/PageBoundary';
import Language from './../../language/Language';
import HamburgerMenu from './../menu/HamburgerMenu';
import Image from './../../image/Image';
const NavbarLink = function(props) {
return (
<NavLink to={ props.to } className="c-navbar__link" activeClassName="is-active" exact={props.exact}>
{ Language.get("navbar." + props.title) }
</NavLink>
);
}
class Navbar extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<section className="c-navbar is-stuck">
<PageBoundary>
<nav className="c-navbar__nav">
{/* Logo */}
<NavLink to="/" className="c-navbar__logo-container" activeClassName="is-active">
<Image
src={ require('./../../images/logo.svg') }
className="c-navbar__logo"
alt={ Language.get("site.name") }
title={ Language.get("site.name") }
width="780"
height="200"
/>
</NavLink>
{/* Desktop / Tablet Screen Links */}
<NavbarLink to="/" title="home" exact />
<NavbarLink to="/contact" title="contact" exact />
{/* Hamburger Menu for smaller screens */}
<HamburgerMenu className="c-navbar__hamburger" />
</nav>
</PageBoundary>
</section>
);
}
}
const mapStateToProps = function(state) {
return {
code: state.language.code
}
}
export default withRouter(connect(mapStateToProps)(Navbar));