UNPKG

@redocly/theme

Version:

Shared UI components lib

30 lines 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRenderableFiles = useRenderableFiles; const react_1 = require("react"); const find_closest_common_directory_1 = require("../../utils/find-closest-common-directory"); const GetFileIcon_1 = require("../../utils/GetFileIcon"); const urls_1 = require("../../utils/urls"); function useRenderableFiles(files) { return (0, react_1.useMemo)(function () { const filePaths = files.map(({ path }) => path); const rootDir = (0, find_closest_common_directory_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, urls_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, GetFileIcon_1.getFileIconByExt)(extension); } //# sourceMappingURL=use-renderable-files.js.map