Revision 1248ca9b
Added by Amir Fefer over 2 years ago
webpack/assets/javascripts/react_app/components/HostDetails/ActionsBar/Selectors.js | ||
---|---|---|
import { selectComponentByWeight } from '../../common/Slot/SlotSelectors';
|
||
|
||
export const selectKebabItems = () =>
|
||
selectComponentByWeight('host-details-kebab');
|
webpack/assets/javascripts/react_app/components/HostDetails/ActionsBar/index.js | ||
---|---|---|
import PropTypes from 'prop-types';
|
||
import React, { useState } from 'react';
|
||
import { useSelector, shallowEqual } from 'react-redux';
|
||
import {
|
||
Button,
|
||
DropdownItem,
|
||
... | ... | |
} from '@patternfly/react-core';
|
||
import { foremanUrl } from '../../../../foreman_navigation';
|
||
import { translate as __ } from '../../../common/I18n';
|
||
import { selectKebabItems } from './Selectors';
|
||
|
||
const ActionsBar = ({ hostName }) => {
|
||
const [kebabIsOpen, setKebab] = useState(false);
|
||
const onKebabToggle = isOpen => setKebab(isOpen);
|
||
const registeredItems = useSelector(selectKebabItems, shallowEqual);
|
||
|
||
const dropdownItems = [
|
||
<DropdownItem key="delete" component="button">
|
||
... | ... | |
{__('Build')}
|
||
</DropdownItem>,
|
||
<DropdownSeparator key="separator" />,
|
||
<DropdownItem key="[plugin]-action-1">
|
||
{__('plugin action 1')}
|
||
</DropdownItem>,
|
||
<DropdownItem key="[plugin]-action-2" component="button">
|
||
{__('plugin action 2')}
|
||
</DropdownItem>,
|
||
];
|
||
|
||
return (
|
||
... | ... | |
toggle={<KebabToggle onToggle={onKebabToggle} />}
|
||
isOpen={kebabIsOpen}
|
||
isPlain
|
||
dropdownItems={dropdownItems}
|
||
dropdownItems={dropdownItems.concat(registeredItems)}
|
||
/>
|
||
</>
|
||
);
|
Also available in: Unified diff
Fixes #30981 - add a slot in the new host page kebab