UNPKG

ndla-ui

Version:

UI component library for NDLA.

66 lines (59 loc) 1.75 kB
/** * Copyright (c) 2017-present, NDLA. * * This source code is licensed under the GPLv3 license found in the * LICENSE file in the root directory of this source tree. * */ import React from 'react'; import PropTypes from 'prop-types'; import BEMHelper from 'react-bem-helper'; import { ResourceShape, ContentTypeShape } from '../shapes'; import ResourceList from './ResourceList'; import ResourcesTitle from '../ResourcesWrapper/ResourcesTitle'; const classes = new BEMHelper({ name: 'resource-group', prefix: 'c-', }); const ResourceGroup = ({ title, icon, resources, toggleAdditionalResources, showAdditionalResources, resourceToLinkProps, contentType, }) => ( <section {...classes('', [contentType, showAdditionalResources ? 'showall' : ''])}> <header {...classes('header')}> <ResourcesTitle>{title}</ResourcesTitle> </header> {resources.length > 0 ? ( <ResourceList title={title} resourceToLinkProps={resourceToLinkProps} onClick={toggleAdditionalResources} showAdditionalResources={showAdditionalResources} icon={icon} resources={resources} /> ) : null} </section> ); ResourceGroup.propTypes = { title: PropTypes.string.isRequired, icon: PropTypes.node.isRequired, contentType: ContentTypeShape.isRequired, resources: PropTypes.arrayOf(ResourceShape).isRequired, toggleAdditionalResources: PropTypes.func.isRequired, resourceToLinkProps: PropTypes.func.isRequired, hideResourceToggleFilter: PropTypes.bool, empty: PropTypes.bool, showAdditionalResources: PropTypes.bool, }; ResourceGroup.defaultProps = { hideResourceToggleFilter: false, showAdditionalResources: false, }; export default ResourceGroup;