UNPKG

react-native-skia-responsive-text

Version:

A library providing a wrapper for the React Native Skia Text component, offering features like user-friendly text alignment, efficient multiline text management, and straightforward text truncation.

36 lines (34 loc) 1.33 kB
export const getTextLinesAlignment = function (lines, width) { 'worklet'; let alignment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left'; switch (alignment) { case 'right': return lines.map(line => width - line.width); case 'center': return lines.map(line => (width - line.width) / 2); case 'center-left': case 'center-right': const longestLineWidth = Math.max(...lines.map(line => line.width)); return lines.map(line => alignment === 'center-left' ? (width - longestLineWidth) / 2 : (width + longestLineWidth) / 2 - line.width); case 'left': // eslint-disable-next-line @typescript-eslint/no-unused-vars return lines.map(_ => 0); } }; export const getVerticalAlignmentOffset = function (componentHeight) { 'worklet'; let parentHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; let verticalAlignment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'top'; switch (verticalAlignment) { case 'top': return 0; case 'center': if (componentHeight >= parentHeight) { return 0; } return (parentHeight - componentHeight) / 2; case 'bottom': return parentHeight && parentHeight - componentHeight; } }; //# sourceMappingURL=alignment.js.map