UNPKG

cozy-search

Version:

UI components about search bar and IA assistant

135 lines (102 loc) 4.59 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getIconForSearchResult = exports.getDriveMimeTypeIcon = void 0; var _get = _interopRequireDefault(require("lodash/get")); var _file = require("cozy-client/dist/models/file"); var _Contacts = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Contacts")); var _FileTypeAudio = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeAudio")); var _FileTypeBin = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeBin")); var _FileTypeCode = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeCode")); var _FileTypeFiles = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeFiles")); var _FileTypeFolder = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeFolder")); var _FileTypeImage = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeImage")); var _FileTypeNote = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeNote")); var _FileTypePdf = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypePdf")); var _FileTypeSheet = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeSheet")); var _FileTypeSlide = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeSlide")); var _FileTypeText = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeText")); var _FileTypeVideo = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeVideo")); var _FileTypeZip = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/FileTypeZip")); var _DocsIcon = _interopRequireDefault(require("./Icons/DocsIcon")); var _EncryptedFolderIcon = _interopRequireDefault(require("./Icons/EncryptedFolderIcon")); var _getFileMimetype = require("./getFileMimetype"); var getIconForSearchResult = function getIconForSearchResult(searchResult) { if (searchResult.doc._type === 'io.cozy.apps') { return { type: 'app', app: searchResult.doc }; } if (searchResult.slug === 'notes') { return { type: 'component', component: _FileTypeNote.default }; } if (searchResult.slug === 'drive') { return { type: 'component', component: getDriveMimeTypeIcon(searchResult.doc) }; } if (searchResult.slug === 'contacts') { return { type: 'component', component: _Contacts.default }; } return { type: 'component', component: _FileTypeFiles.default }; }; /** * Returns the appropriate icon for a given file based on its mime type and other properties. * * This method has been copied from cozy-drive * * See source: https://github.com/cozy/cozy-drive/blob/fbe2df67199683b23a40f476ccdacb00ee027459/src/lib/getMimeTypeIcon.js * * @param {import('cozy-client/types/types').IOCozyFile} file - The io.cozy.files . * @param {Object} [options] - Additional options. * @param {boolean} [options.isEncrypted] - Indicates whether the file is encrypted. Default is false. * @returns {import('react').ReactNode} - The icon corresponding to the file's mime type. */ exports.getIconForSearchResult = getIconForSearchResult; var getDriveMimeTypeIcon = function getDriveMimeTypeIcon(file) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$isEncrypted = _ref.isEncrypted, isEncrypted = _ref$isEncrypted === void 0 ? false : _ref$isEncrypted; var isDirectory = file.type === 'directory'; var name = file.name, mime = file.mime; if (isEncrypted) { return _EncryptedFolderIcon.default; } if (isDirectory) { return _FileTypeFolder.default; } else if ((0, _file.isNote)(file)) { return _FileTypeNote.default; } else if ((0, _file.isDocs)(file)) { return _DocsIcon.default; } else { var iconsByMimeType = { audio: _FileTypeAudio.default, bin: _FileTypeBin.default, code: _FileTypeCode.default, image: _FileTypeImage.default, pdf: _FileTypePdf.default, slide: _FileTypeSlide.default, sheet: _FileTypeSheet.default, text: _FileTypeText.default, video: _FileTypeVideo.default, zip: _FileTypeZip.default }; var type = (0, _getFileMimetype.getFileMimetype)(iconsByMimeType)(mime, name); return (0, _get.default)(iconsByMimeType, type, _FileTypeFiles.default); } }; exports.getDriveMimeTypeIcon = getDriveMimeTypeIcon;