/** * * List * */ import React from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import { map, omitBy, size } from 'lodash'; import cn from 'classnames'; // Components from strapi-helper-plugin import LoadingBar from 'components/LoadingBar'; import LoadingIndicator from 'components/LoadingIndicator'; // Design import Button from 'components/Button'; import ListRow from 'components/ListRow'; import styles from './styles.scss'; const generateListTitle = (data, settingType) => { switch (settingType) { case 'roles': { const title = size(data) < 2 ? : ; return title; } case 'providers': { const enabledProvidersSize = data.filter(o => o.enabled).length; const enabledProviders = enabledProvidersSize > 1 ? : ; const disabledProviders = size(data) - enabledProvidersSize > 1 ? : ; return
{enabledProviders} {disabledProviders}
; } case 'email-templates': { return size(data) > 1 ? : ; } default: return ''; } }; function List({ data, deleteData, noButton, onButtonClick, settingType, showLoaders, values }) { const object = omitBy(data, (v) => v.name === 'server'); // Remove the server key when displaying providers return (
{showLoaders ? : generateListTitle(data, settingType)}
{noButton ? ( '' ) : ( )}
{showLoaders ? : (
    {map(object, item => ( ))}
)}
); } List.defaultProps = { noButton: false, onButtonClick: () => {}, showLoaders: true, }; List.propTypes = { data: PropTypes.array.isRequired, deleteData: PropTypes.func.isRequired, noButton: PropTypes.bool, onButtonClick: PropTypes.func, settingType: PropTypes.string.isRequired, showLoaders: PropTypes.bool, values: PropTypes.object.isRequired, }; export default List;