17 lines
455 B
TypeScript
17 lines
455 B
TypeScript
export default function useTextWrap() {
|
|
// text wraps a string to a given width
|
|
function textWrap({ s, w }: { s: string; w: number }): string[] {
|
|
// return tspan elements for text with correct size
|
|
const wrap = (s: string, w: number) =>
|
|
s.replace(
|
|
new RegExp(`(?![^\\n]{1,${w}}$)([^\\n]{1,${w}})\\s`, "g"),
|
|
"$1\n"
|
|
);
|
|
const result = wrap(s, w).split("\n");
|
|
return result;
|
|
}
|
|
|
|
return {
|
|
textWrap
|
|
};
|
|
}
|