2019-07-05 14:59:31 +02:00
|
|
|
import React from 'react';
|
|
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
|
|
|
|
|
|
import pluginId from '../../pluginId';
|
|
|
|
|
|
2019-07-05 15:45:16 +02:00
|
|
|
import Add from './Add';
|
2019-07-05 14:59:31 +02:00
|
|
|
import ListField from './ListField';
|
|
|
|
|
|
2019-07-05 15:45:16 +02:00
|
|
|
function ListLayout({
|
|
|
|
|
addField,
|
|
|
|
|
availableData,
|
|
|
|
|
displayedData,
|
|
|
|
|
fieldToEditIndex,
|
|
|
|
|
onClick,
|
|
|
|
|
onRemove,
|
|
|
|
|
}) {
|
2019-07-05 14:59:31 +02:00
|
|
|
const handleRemove = index => {
|
|
|
|
|
if (displayedData.length > 1) {
|
|
|
|
|
onRemove(index);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
strapi.notification.info(`${pluginId}.notification.info.minimumFields`);
|
|
|
|
|
};
|
|
|
|
|
return (
|
|
|
|
|
<>
|
|
|
|
|
<div className="col-lg-5 col-md-12">
|
|
|
|
|
{displayedData.map((data, index) => (
|
|
|
|
|
<ListField
|
|
|
|
|
key={data}
|
|
|
|
|
index={index}
|
2019-07-05 15:24:30 +02:00
|
|
|
isSelected={fieldToEditIndex === index}
|
2019-07-05 14:59:31 +02:00
|
|
|
name={data}
|
2019-07-05 15:24:30 +02:00
|
|
|
onClick={onClick}
|
2019-07-05 14:59:31 +02:00
|
|
|
onRemove={handleRemove}
|
|
|
|
|
/>
|
|
|
|
|
))}
|
2019-07-05 15:45:16 +02:00
|
|
|
<Add data={availableData} onClick={addField} />
|
2019-07-05 14:59:31 +02:00
|
|
|
</div>
|
|
|
|
|
<div className="col-lg-7 col-md-12">Form</div>
|
|
|
|
|
</>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListLayout.defaultProps = {
|
2019-07-05 15:45:16 +02:00
|
|
|
addField: () => {},
|
|
|
|
|
availableData: [],
|
2019-07-05 14:59:31 +02:00
|
|
|
displayedData: [],
|
2019-07-05 15:45:16 +02:00
|
|
|
fieldToEditIndex: 0,
|
|
|
|
|
onClick: () => {},
|
2019-07-05 14:59:31 +02:00
|
|
|
onRemove: () => {},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
ListLayout.propTypes = {
|
2019-07-05 15:45:16 +02:00
|
|
|
addField: PropTypes.func,
|
|
|
|
|
availableData: PropTypes.array,
|
2019-07-05 14:59:31 +02:00
|
|
|
displayedData: PropTypes.array,
|
2019-07-05 15:45:16 +02:00
|
|
|
fieldToEditIndex: PropTypes.number,
|
|
|
|
|
onClick: PropTypes.func,
|
2019-07-05 14:59:31 +02:00
|
|
|
onRemove: PropTypes.func,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default ListLayout;
|