77 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-07-23 17:37:07 +02:00
import React, { memo, useState } from 'react';
import { FormattedMessage } from 'react-intl';
import PropTypes from 'prop-types';
2019-12-06 18:27:07 +01:00
import { Plus } from '@buffetjs/icons';
2019-07-23 17:37:07 +02:00
import {
ButtonDropdown,
DropdownToggle,
DropdownMenu,
DropdownItem,
} from 'reactstrap';
2019-12-12 12:27:10 +01:00
import getTrad from '../../utils/getTrad';
2019-07-23 17:37:07 +02:00
import { Wrapper } from './components';
2019-12-12 12:27:10 +01:00
function Add({ data, isRelation, onClick, pStyle, style }) {
2019-08-01 16:33:51 +02:00
const [isOpen, setIsOpen] = useState(false);
2019-07-23 17:37:07 +02:00
return (
2019-08-01 16:33:51 +02:00
<Wrapper isOpen={isOpen} notAllowed={data.length === 0} style={style}>
2019-07-23 17:37:07 +02:00
<ButtonDropdown
2019-08-01 16:33:51 +02:00
isOpen={isOpen}
2019-07-23 17:37:07 +02:00
toggle={() => {
if (data.length > 0) {
2019-08-01 16:33:51 +02:00
setIsOpen(prevState => !prevState);
2019-07-23 17:37:07 +02:00
}
}}
>
<DropdownToggle>
2019-12-12 12:27:10 +01:00
<FormattedMessage
id={getTrad(
`containers.SettingPage.${
isRelation ? 'add.relational-field' : 'add.field'
}`
)}
>
2019-07-23 17:37:07 +02:00
{msg => (
<p style={pStyle}>
2019-12-10 14:26:12 +01:00
<Plus fill="#007eff" height="11px" width="11px" />
2019-07-23 17:37:07 +02:00
{msg}
</p>
)}
</FormattedMessage>
</DropdownToggle>
<DropdownMenu>
{data.map(item => (
<DropdownItem
key={item}
onClick={() => {
onClick(item);
}}
>
{item}
</DropdownItem>
))}
</DropdownMenu>
</ButtonDropdown>
</Wrapper>
);
}
Add.defaultProps = {
data: [],
2019-12-12 12:27:10 +01:00
isRelation: false,
2019-07-23 17:37:07 +02:00
onClick: () => {},
pStyle: {},
style: {},
};
Add.propTypes = {
data: PropTypes.array,
2019-12-12 12:27:10 +01:00
isRelation: PropTypes.bool,
2019-07-23 17:37:07 +02:00
onClick: PropTypes.func,
pStyle: PropTypes.object,
style: PropTypes.object,
};
export default memo(Add);