From 1736be58119f2fa0125d792b741ce841a30c9a33 Mon Sep 17 00:00:00 2001 From: Emily Janzer Date: Thu, 30 Aug 2018 09:26:21 -0700 Subject: [PATCH] Add onTextLayout to TextProps Summary: Splitting this into a separate diff for OSS Reviewed By: yungsters Differential Revision: D9551085 fbshipit-source-id: 8ca08351c6b89cd0011aab3c47ef6cc28b763450 --- Libraries/Text/TextProps.js | 3 ++- Libraries/Types/CoreEventTypes.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Libraries/Text/TextProps.js b/Libraries/Text/TextProps.js index 7426b5ab5..289424a7e 100644 --- a/Libraries/Text/TextProps.js +++ b/Libraries/Text/TextProps.js @@ -10,7 +10,7 @@ 'use strict'; -import type {LayoutEvent, PressEvent} from 'CoreEventTypes'; +import type {LayoutEvent, PressEvent, TextLayoutEvent} from 'CoreEventTypes'; import type React from 'React'; import type {DangerouslyImpreciseStyleProp} from 'StyleSheet'; import type { @@ -48,6 +48,7 @@ export type TextProps = $ReadOnly<{ onResponderTerminate?: ?Function, onResponderTerminationRequest?: ?Function, onStartShouldSetResponder?: ?Function, + onTextLayout?: ?(event: TextLayoutEvent) => mixed, pressRetentionOffset?: ?PressRetentionOffset, selectable?: ?boolean, style?: ?DangerouslyImpreciseStyleProp, diff --git a/Libraries/Types/CoreEventTypes.js b/Libraries/Types/CoreEventTypes.js index 58a0cc5ed..17e6de6f1 100644 --- a/Libraries/Types/CoreEventTypes.js +++ b/Libraries/Types/CoreEventTypes.js @@ -36,12 +36,27 @@ export type Layout = $ReadOnly<{| height: number, |}>; +export type TextLayout = $ReadOnly<{| + ...Layout, + ascender: number, + capHeight: number, + descender: number, + text: string, + xHeight: number, +|}>; + export type LayoutEvent = SyntheticEvent< $ReadOnly<{| layout: Layout, |}>, >; +export type TextLayoutEvent = SyntheticEvent< + $ReadOnly<{| + lines: Array, + |}>, +>; + export type PressEvent = SyntheticEvent< $ReadOnly<{| changedTouches: $ReadOnlyArray<$PropertyType>,