UNPKG

@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
"use strict"; 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)); };