From 53d51bc4002c78f1f73222063bbfa59804512744 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Fri, 4 Oct 2024 13:10:27 -0600 Subject: [PATCH] fix: center wrapped text --- src/table.tsx | 7 ++----- src/utils.ts | 3 +-- test/table.test.tsx | 4 ++-- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/table.tsx b/src/table.tsx index 5a1356c..a6e7718 100644 --- a/src/table.tsx +++ b/src/table.tsx @@ -2,7 +2,6 @@ import cliTruncate from 'cli-truncate' import {Box, Text, render} from 'ink' -import {EOL} from 'node:os' import {sha1} from 'object-hash' import React from 'react' import stripAnsi from 'strip-ansi' @@ -156,9 +155,7 @@ export function formatTextWithMargins({ } if (horizontalAlignment === 'center') { - return idx === 0 - ? `${line}${' '.repeat(lineSpecificRightMargin - marginRight)}` - : `${' '.repeat(lineSpecificLeftMargin)}${line}${' '.repeat(lineSpecificRightMargin - marginRight)}` + return `${' '.repeat(lineSpecificLeftMargin)}${line}${' '.repeat(lineSpecificRightMargin - marginRight)}` } // right alignment @@ -174,7 +171,7 @@ export function formatTextWithMargins({ } } - const text = cliTruncate(valueWithNoZeroWidthChars.replaceAll(EOL, ' '), spaceForText, { + const text = cliTruncate(valueWithNoZeroWidthChars.replaceAll('\n', ' '), spaceForText, { position: determineTruncatePosition(overflow), }) const spaces = width - stripAnsi(text).length diff --git a/src/utils.ts b/src/utils.ts index e22b1a8..cfdd062 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,6 +1,5 @@ import {camelCase, capitalCase, constantCase, kebabCase, pascalCase, sentenceCase, snakeCase} from 'change-case' import {orderBy} from 'natural-orderby' -import {EOL} from 'node:os' import stripAnsi from 'strip-ansi' import {Column, ColumnProps, Config, Sort} from './types.js' @@ -47,7 +46,7 @@ export function allKeysInCollection>(data: T[] } export function determineWidthOfWrappedText(text: string): number { - const lines = text.split(EOL) + const lines = text.split('\n') return lines.reduce((max, line) => Math.max(max, line.length), 0) } diff --git a/test/table.test.tsx b/test/table.test.tsx index 8d6c027..be04b13 100644 --- a/test/table.test.tsx +++ b/test/table.test.tsx @@ -614,7 +614,7 @@ scing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.`, ).to.deep.equal({ marginLeft: 1, marginRight: 1, - text: 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n iiiiiiiiiiiiiiiiiiiiii ', + text: ' iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n iiiiiiiiiiiiiiiiiiiiii ', }) }) @@ -632,7 +632,7 @@ scing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.`, ).to.deep.equal({ marginLeft: 1, marginRight: 2, - text: 'Lorem ipsum dolor sit amet, consectetur \n adipi \n scing elit. Sed do eiusmod tempor incididunt ut\n labore et dolore magna aliqua. ', + text: ' Lorem ipsum dolor sit amet, consectetur \n adipi \n scing elit. Sed do eiusmod tempor incididunt ut\n labore et dolore magna aliqua. ', }) }) })