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 }; }