react-saasify
Version:
React components for Saasify web clients.
85 lines (73 loc) • 2.32 kB
JavaScript
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import theme from 'lib/theme'
import { observer, inject } from 'mobx-react'
import { Logo } from '../Logo'
import Link from './Link'
import styles from './styles.module.css'
('auth')
('config')
export class NavFooter extends Component {
static propTypes = {
config: PropTypes.object.isRequired,
auth: PropTypes.object.isRequired,
inverted: PropTypes.bool
}
static defaultProps = {
inverted: false
}
render() {
const { auth, className, inverted, style, config } = this.props
return (
<footer
className={theme(styles, 'nav-footer', className)}
style={{
background: inverted
? theme['@section-bg-color']
: theme['@section-fg-color'],
...style
}}
>
<div className={theme(styles, 'content')}>
<div className={theme(styles, 'detailColumn')}>
{config.logo &&
config?.deployment?.saas?.sections?.navFooter?.logo !== false && (
<Link to='/'>
<Logo className={theme(styles, 'logo')} />
</Link>
)}
{config?.deployment?.saas?.sections?.navFooter?.location !==
false && (
<div className={theme(styles, 'detail')}>
{config?.deployment?.saas?.sections?.navFooter?.location ||
'Brooklyn, NY'}
</div>
)}
</div>
{config.footer?.columns?.map((column) => (
<div key={column.label}>
<h3 className={theme(styles, 'header')}>{column.label}</h3>
<ul>
{column?.links?.map((link) => {
if (typeof link === 'function') {
link = link({ config, auth })
if (!link) return null
}
return (
<li
key={link.to || link.href}
className={theme(styles, 'listItem')}
>
<Link {...link} />
</li>
)
})}
</ul>
</div>
))}
</div>
</footer>
)
}
}