kwikid-components-react
Version:
KwikID's Component Library in React
86 lines (80 loc) • 2.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getIconColor = exports.getFolderIcon = exports.getFileIcon = exports.getFileExtension = void 0;
var _fa = require("react-icons/fa");
/**
* Get file extension from file name
*/
const getFileExtension = fileName => {
const parts = fileName.split(".");
return parts.length > 1 ? parts[parts.length - 1].toLowerCase() : "";
};
/**
* File extension to icon mapping
*/
exports.getFileExtension = getFileExtension;
const FILE_ICONS = {
// Documents
doc: _fa.FaFileWord,
docx: _fa.FaFileWord,
pdf: _fa.FaFilePdf,
xls: _fa.FaFileExcel,
xlsx: _fa.FaFileExcel,
ppt: _fa.FaFilePowerpoint,
pptx: _fa.FaFilePowerpoint,
txt: _fa.FaFileAlt,
rtf: _fa.FaFileAlt,
// Images
jpg: _fa.FaFileImage,
jpeg: _fa.FaFileImage,
png: _fa.FaFileImage,
gif: _fa.FaFileImage,
svg: _fa.FaFileImage,
bmp: _fa.FaFileImage,
// Audio
mp3: _fa.FaFileAudio,
wav: _fa.FaFileAudio,
ogg: _fa.FaFileAudio,
// Video
mp4: _fa.FaFileVideo,
avi: _fa.FaFileVideo,
mov: _fa.FaFileVideo,
wmv: _fa.FaFileVideo,
// Code
js: _fa.FaFileCode,
ts: _fa.FaFileCode,
jsx: _fa.FaFileCode,
tsx: _fa.FaFileCode,
html: _fa.FaFileCode,
css: _fa.FaFileCode,
json: _fa.FaFileCode
};
// Default fallback icon
const DEFAULT_FILE_ICON = _fa.FaFile;
/**
* Get the appropriate icon for a file based on its extension
*/
const getFileIcon = fileName => {
const extension = getFileExtension(fileName);
return FILE_ICONS[extension] || DEFAULT_FILE_ICON;
};
/**
* Get folder icon based on expanded state
*/
exports.getFileIcon = getFileIcon;
const getFolderIcon = isExpanded => {
return isExpanded ? _fa.FaFolderOpen : _fa.FaFolder;
};
/**
* Get icon color based on node type and state
*/
exports.getFolderIcon = getFolderIcon;
const getIconColor = (nodeType, isExpanded) => {
if (nodeType === "folder") {
return isExpanded ? "#f8d775" : "#e9c46a"; // Different shades for expanded/collapsed folders
}
return "#8e9aaf"; // Blue-gray for files
};
exports.getIconColor = getIconColor;