JSFiddle - React, Tailwind, and code Playground
by Boba Poshtar
JavaScript
function lineBreak(line) {
let parent = line.parentElement;
let divs = parent.querySelectorAll('.line');
//let words = line.textContent.split(' ');
let words;
//let cursorIndex = words[words.length - 1].length;
let lines = [];
divs.forEach(function(line) {
lines.push(line.textContent);
});
let linesOriginal = lines.concat();
let lastWords = '';
for (let i = 0; i < lines.length; i++) {
if (lastWords) {
lines[i] = lastWords + ' ' + lines[i];
lastWords = '';
}
let limit = parseInt(divs[i].dataset.symbolscount);
while (lines[i].length > limit) {
words = lines[i].split(' ');
lastWords += (lastWords ? ' ' : '') + words.pop();
lines[i] = words.join(' ');
}
}
if (lastWords) {
if (lines.length < parseInt(parent.dataset.lineslimit)) {
lines.push(lastWords);
return lines;
} else return;
}
}