/**
*
* 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 { Button, LoadingBar, LoadingIndicator } from 'strapi-helper-plugin';
import ListRow from '../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;