GridBuffer: deduplicate empty lines

This commit is contained in:
He4eT 2023-05-28 15:20:16 +03:00 committed by Alexey
commit ae4bdf5983
3 changed files with 19 additions and 11 deletions

View file

@ -44,22 +44,27 @@ export default function GridBuffer ({ inbox, currentWindow }) {
const rawMessagesContent = const rawMessagesContent =
rawMessages rawMessages
.map((x) => x.content) .map((x) => x.content)
.map(([x]) => x) .flat()
.map(({ text }) => text) .map((message) => ({
.map((text) => text.trim()) ...message,
text: message.text.trim(),
}))
const isEmpty = const isEmpty =
rawMessagesContent rawMessagesContent
.map((text) => text.length) .map(({text}) => text.length)
.every((l) => l === 0) .every((l) => l === 0)
const getGridStyle = ({style}) => {
if (['alert', 'normal'].includes(style)) return 'grid'
else return style || 'grid'
}
const messages = const messages =
rawMessagesContent rawMessagesContent
.map((text) => .map((message) => ({
text.replace(' ', ' / ')) style: getGridStyle(message),
.map((text) => ({ text: message.text.replace(' ', ' / '),
style: 'grid',
text,
})) }))
setMessages(isEmpty ? [] : messages) setMessages(isEmpty ? [] : messages)

View file

@ -7,7 +7,7 @@ export default function TextMessage ({ style, text }) {
</span>) </span>)
return ({ return ({
grid: (<div>{text}&nbsp;</div>), grid: (text?.length > 0 ? <div>{text}</div> : <br />),
input: (<span className='message input'>&gt; {text}</span>), input: (<span className='message input'>&gt; {text}</span>),
subheader: (<strong className='message subheader'>{text}</strong>), subheader: (<strong className='message subheader'>{text}</strong>),
emphasized: (<em className='message emphasized'>{text}</em>), emphasized: (<em className='message emphasized'>{text}</em>),

View file

@ -84,8 +84,11 @@
} }
.ifplayer .output .textBuffer > br:first-child, .ifplayer .output .textBuffer > br:first-child,
.ifplayer .output .gridBuffer > br:first-child,
.ifplayer .output .textBuffer > br:last-child, .ifplayer .output .textBuffer > br:last-child,
.ifplayer .output .textBuffer > br + br + br { .ifplayer .output .gridBuffer > br:last-child,
.ifplayer .output .textBuffer > br + br + br,
.ifplayer .output .gridBuffer > br + br + br {
display: none; display: none;
} }