@git-temporal/git-temporal-react
Version:
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
40 lines (39 loc) • 1.71 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const styles_1 = require("app/styles");
function ellipsizeFileName(fileName, maxCharacters) {
const lengthIn = fileName.length;
if (lengthIn > maxCharacters) {
const overCount = lengthIn - maxCharacters + 4;
const fileNameParts = fileName.split('/');
let eliminatedCount = 0;
let rightPath = '';
for (let i = 2; i < fileNameParts.length - 1; i++) {
const filePart = fileNameParts[i];
if (eliminatedCount < overCount) {
eliminatedCount += filePart.length + 1;
}
else {
rightPath += `/${filePart}`;
}
}
return `${fileNameParts[0]}/...${rightPath}/${fileNameParts[fileNameParts.length - 1]}`;
}
return fileName;
}
exports.ellipsizeFileName = ellipsizeFileName;
exports.EllipsizedFileName = (props) => {
return (react_1.default.createElement("span", { title: props.fileName, style: styles_1.style(props.style) }, renderFileNameLink(props.fileName, props.maxCharacters, props.onClick)));
};
exports.EllipsizedFileName.displayName = 'EllipsizedFileName';
const renderFileNameLink = (fileName, maxCharacters, onClick) => {
const ellipsized = ellipsizeFileName(fileName, maxCharacters);
if (!onClick) {
return ellipsized;
}
return (react_1.default.createElement("a", { onClick: evt => onClick(evt, fileName), style: styles_1.style('link') }, ellipsized));
};