@redocly/theme
Version:
Shared UI components lib
28 lines • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRenderableFiles = useRenderableFiles;
const react_1 = require("react");
const utils_1 = require("../../../core/utils");
function useRenderableFiles(files) {
return (0, react_1.useMemo)(function () {
const filePaths = files.map(({ path }) => path);
const rootDir = (0, utils_1.findClosestCommonDirectory)(filePaths);
const renderableFiles = files.map((file) => {
const FileIcon = getFileTypeIcon(file.basename);
const parentFolder = file.path.split('/').slice(-2, -1)[0];
const isNameDuplicate = files.some((_file) => file.basename === _file.basename && file.path !== _file.path);
const inRootDir = file.path === `${(0, utils_1.removeLeadingSlash)(rootDir)}/${file.basename}`;
return Object.assign(Object.assign({}, file), { FileIcon,
inRootDir,
parentFolder,
isNameDuplicate });
});
return renderableFiles;
}, [files]);
}
function getFileTypeIcon(basename) {
var _a;
const extension = ((_a = basename.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || '';
return (0, utils_1.getFileIconByExt)(extension);
}
//# sourceMappingURL=use-renderable-files.js.map