@plone/volto
Version:
Volto
64 lines (61 loc) • 1.95 kB
JSX
/**
* Content Types component.
* @module components/manage/Controlpanels/ContentTypesActions
*/
import React from 'react';
import { Dropdown } from 'semantic-ui-react';
import { FormattedMessage, injectIntl } from 'react-intl';
import Icon from '@plone/volto/components/theme/Icon/Icon';
import trashSVG from '@plone/volto/icons/delete.svg';
import layoutSVG from '@plone/volto/icons/file.svg';
import folderSVG from '@plone/volto/icons/folder.svg';
import editSVG from '@plone/volto/icons/pen.svg';
/**
* ContentTypesActions class.
* @class ContentTypesActions
* @extends Component
*/
const ContentTypesActions = ({
item,
path,
onEdit,
onDelete,
onLayout,
onSchema,
}) => {
return (
<Dropdown icon="ellipsis horizontal" className={`actions-${item.id}`}>
<Dropdown.Menu className="left">
<Dropdown.Item
onClick={onEdit}
value={`${path}/${item.id}`}
className={`edit-${item.id}`}
>
<Icon name={editSVG} size="15px" />
<FormattedMessage id="Edit" defaultMessage="Edit" />
</Dropdown.Item>
<Dropdown.Item onClick={onSchema} value={item.id}>
<Icon name={folderSVG} size="15px" />
<FormattedMessage id="Schema" defaultMessage="Schema" />
</Dropdown.Item>
<Dropdown.Item
onClick={onLayout}
value={`${path}/${item.id}/layout`}
className={`layout-${item.id}`}
>
<Icon name={layoutSVG} size="15px" />
<FormattedMessage id="Layout" defaultMessage="Layout" />
</Dropdown.Item>
<Dropdown.Item
onClick={onDelete}
value={item['@id']}
className={`delete-${item.id}`}
>
<Icon name={trashSVG} size="15px" />
<FormattedMessage id="Delete" defaultMessage="Delete" />
</Dropdown.Item>
</Dropdown.Menu>
</Dropdown>
);
};
export default injectIntl(ContentTypesActions);