monday-ui-react-core
Version:
Official monday.com UI resources for application development in React.js
54 lines (49 loc) • 2.01 kB
JavaScript
const path = require("path");
const fs = require("fs");
const publishedComponents = {
// Don't remove next line
// plop_marker:published-components
AttentionBox: "/src/components/AttentionBox/AttentionBox.jsx",
Label: "/src/components/Label/Label.jsx",
MenuButton: "/src/components/MenuButton/MenuButton.jsx",
RadioButton: "/src/components/RadioButton/RadioButton.jsx",
SplitButton: "/src/components/SplitButton/SplitButton.jsx",
Counter: "/src/components/Counter/Counter.jsx",
SearchComponent: "/src/components/Search/Search.jsx", // TODO: remove when bumping to version 1.0.0
Search: "/src/components/Search/Search.jsx",
TextField: "/src/components/TextField/TextField.jsx",
Tooltip: "/src/components/Tooltip/Tooltip.jsx",
Button: "/src/components/Button/Button.jsx",
Loader: "/src/components/Loader/Loader.jsx",
Icon: "/src/components/Icon/Icon.jsx",
CustomSvgIcon: "/src/components/Icon/CustomSvgIcon.jsx",
FormattedNumber: "/src/components/FormattedNumber/FormattedNumber.jsx",
LinearProgressBar:
"/src/components/ProgressBars/LinearProgressBar/LinearProgressBar.jsx",
useKeyEvent: "/src/hooks/useKeyEvent.js",
useEventListener: "/src/hooks/useEventListener.js",
useDebounceEvent: "/src/hooks/useDebounceEvent.js",
useClickOutside: "/src/hooks/useClickOutside.js",
useResizeObserver: "/src/hooks/useResizeObserver.js",
};
function getPublishedComponents(dirPath = "") {
return Object.entries(publishedComponents).reduce(
(acc, [key, value]) => {
return { ...acc, [key]: dirPath + value };
},
{ ...exposeIcons(dirPath) }
);
}
function exposeIcons(dirPath) {
const iconsPath = "src/components/Icon/Icons/components";
const directoryPath = path.join(dirPath, iconsPath);
const filesObject = {};
const files = fs.readdirSync(directoryPath);
files.forEach(function(file) {
filesObject[`/icons/${file.split(".")[0]}`] = `${iconsPath}/${file}`;
});
return filesObject;
}
module.exports = {
getPublishedComponents,
};