UNPKG

ndla-ui

Version:

UI component library for NDLA.

71 lines (62 loc) 1.65 kB
/** * 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;