@atlaskit/eslint-plugin-design-system
Version:
The essential plugin for use with the Atlassian Design System.
16 lines • 821 B
JavaScript
import { hasImportOfName } from './has-import-of-name';
export const getUniqueButtonItemName = (menuNode, importDeclarations) => {
// Remove menu import node from array
const allImportDeclarationsButMenu = importDeclarations.filter(i => i !== menuNode);
let currentButtonItemNameExistsOtherThanMenu = allImportDeclarationsButMenu.reduce((acc, importNode) => acc || hasImportOfName(importNode, 'ButtonItem'), false);
if (currentButtonItemNameExistsOtherThanMenu) {
let suffix = 1;
while (currentButtonItemNameExistsOtherThanMenu) {
suffix += 1;
currentButtonItemNameExistsOtherThanMenu = allImportDeclarationsButMenu.reduce((acc, importNode) => acc || hasImportOfName(importNode, `ButtonItem${suffix}`), false);
}
return `ButtonItem${suffix}`;
} else {
return 'ButtonItem';
}
};