@shopify/polaris
Version:
Shopify’s product component library
48 lines (42 loc) • 1.36 kB
JavaScript
import React$1 from 'react';
import { useFeatures } from '../../utilities/features/hooks.js';
import { classNames } from '../../utilities/css.js';
import { Actions as Actions$1 } from './components/Actions/Actions.js';
import { RollupActions as RollupActions$1 } from './components/RollupActions/RollupActions.js';
import styles from './ActionMenu.scss.js';
function ActionMenu({
actions = [],
groups = [],
rollup
}) {
var {
newDesignLanguage
} = useFeatures();
if (actions.length === 0 && groups.length === 0) {
return null;
}
var actionMenuClassNames = classNames(styles.ActionMenu, rollup && styles.rollup, newDesignLanguage && styles.newDesignLanguage);
var rollupSections = groups.map(group => convertGroupToSection(group));
return /*#__PURE__*/React$1.createElement("div", {
className: actionMenuClassNames
}, rollup ? /*#__PURE__*/React$1.createElement(RollupActions$1, {
items: actions,
sections: rollupSections
}) : /*#__PURE__*/React$1.createElement(Actions$1, {
actions: actions,
groups: groups
}));
}
function hasGroupsWithActions(groups = []) {
return groups.length === 0 ? false : groups.some(group => group.actions.length > 0);
}
function convertGroupToSection({
title,
actions
}) {
return {
title,
items: actions
};
}
export { ActionMenu, hasGroupsWithActions };