diff options
Diffstat (limited to 'app/assets/javascripts/lib/utils/text_utility.js')
-rw-r--r-- | app/assets/javascripts/lib/utils/text_utility.js | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/app/assets/javascripts/lib/utils/text_utility.js b/app/assets/javascripts/lib/utils/text_utility.js index 86714471823..be3fe1ed620 100644 --- a/app/assets/javascripts/lib/utils/text_utility.js +++ b/app/assets/javascripts/lib/utils/text_utility.js @@ -90,6 +90,13 @@ export const truncatePathMiddleToLength = (text, maxWidth) => { while (returnText.length >= maxWidth) { const textSplit = returnText.split('/').filter(s => s !== ELLIPSIS_CHAR); + + if (textSplit.length === 0) { + // There are n - 1 path separators for n segments, so 2n - 1 <= maxWidth + const maxSegments = Math.floor((maxWidth + 1) / 2); + return new Array(maxSegments).fill(ELLIPSIS_CHAR).join('/'); + } + const middleIndex = Math.floor(textSplit.length / 2); returnText = textSplit @@ -168,7 +175,7 @@ export const convertToCamelCase = string => * @param {*} string */ export const convertToSnakeCase = string => - slugifyWithUnderscore(string.match(/([a-zA-Z][^A-Z]*)/g).join(' ')); + slugifyWithUnderscore((string.match(/([a-zA-Z][^A-Z]*)/g) || [string]).join(' ')); /** * Converts a sentence to lower case from the second word onwards |