ndla-ui
Version:
UI component library for NDLA.
71 lines (62 loc) • 1.65 kB
JavaScript
/**
* Copyright (c) 2016-present, NDLA.
*
* This source code is licensed under the GPLv3 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
/* eslint-disable max-len */
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import BEMHelper from 'react-bem-helper';
import SvgLogo from './SvgLogo';
import SafeLink from '../common/SafeLink';
export var logoClasses = new BEMHelper({
name: 'logo',
prefix: 'c-'
});
export var Logo = function Logo(_ref) {
var name = _ref.name,
to = _ref.to,
cssModifier = _ref.cssModifier,
color = _ref.color,
large = _ref.large,
locale = _ref.locale,
label = _ref.label;
var modifiers = { large: large };
if (cssModifier) {
modifiers[cssModifier] = true;
}
var logo = to ? React.createElement(
SafeLink,
{ to: to, 'aria-label': label },
React.createElement(SvgLogo, { name: name, color: color, locale: locale })
) : React.createElement(
Fragment,
null,
React.createElement(SvgLogo, { name: name, color: color, locale: locale })
);
return React.createElement(
'h1',
logoClasses('', modifiers),
logo
);
};
Logo.propTypes = {
to: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({
pathname: PropTypes.string.isRequired,
search: PropTypes.string,
hash: PropTypes.string
})]),
label: PropTypes.string.isRequired,
locale: PropTypes.string,
cssModifier: PropTypes.string,
large: PropTypes.bool,
name: PropTypes.bool,
color: PropTypes.string
};
Logo.defaultProps = {
name: true,
large: false
};
export default Logo;