spaCy/website/src/components/main.js

54 lines
1.5 KiB
JavaScript
Raw Normal View History

import React from 'react'
import PropTypes from 'prop-types'
import classNames from 'classnames'
import patternBlue from '../images/pattern_blue.jpg'
import patternGreen from '../images/pattern_green.jpg'
import patternPurple from '../images/pattern_purple.jpg'
2020-07-01 14:03:04 +03:00
import patternNightly from '../images/pattern_nightly.jpg'
import classes from '../styles/main.module.sass'
2020-07-01 14:03:04 +03:00
const patterns = {
blue: patternBlue,
green: patternGreen,
purple: patternPurple,
nightly: patternNightly,
}
export const Content = ({ Component = 'div', className, children }) => (
<Component className={classNames(classes.content, className)}>{children}</Component>
)
2020-08-06 02:22:49 +03:00
export default function Main({
sidebar = false,
asides = false,
wrapContent = false,
theme = 'blue',
footer,
children,
}) {
2020-07-01 14:03:04 +03:00
const pattern = patterns[theme]
const mainClassNames = classNames(classes.root, {
[classes.withSidebar]: sidebar,
[classes.withAsides]: asides,
})
return (
<main className={mainClassNames}>
{wrapContent ? <Content Component="article">{children}</Content> : children}
{asides && (
2020-07-01 14:03:04 +03:00
<div className={classes.asides} style={{ backgroundImage: `url(${pattern}` }} />
)}
{footer}
</main>
)
}
Main.propTypes = {
sidebar: PropTypes.bool,
asides: PropTypes.bool,
wrapContent: PropTypes.bool,
theme: PropTypes.string.isRequired,
footer: PropTypes.node,
}