Page MenuHomePhabricator

D12982.diff
No OneTemporary

D12982.diff

diff --git a/native/tooltip/nux-tips-overlay.react.js b/native/tooltip/nux-tips-overlay.react.js
--- a/native/tooltip/nux-tips-overlay.react.js
+++ b/native/tooltip/nux-tips-overlay.react.js
@@ -90,6 +90,8 @@
+onTipContainerLayout: (event: LayoutEvent) => void,
+tipContainerOpacity: Node,
+tipVerticalBelow: Node,
+ +tipHorizontal: Node,
+ +tipScale: Node,
};
const tipHeight: number = 30;
@@ -103,8 +105,6 @@
NUXTipsOverlayProps<BaseNUXTipsOverlayProps>,
> {
tipVerticalAbove: Node;
- tipHorizontal: Node;
- tipScale: Node;
fixedTipVertical: Node;
constructor(props: NUXTipsOverlayProps<BaseNUXTipsOverlayProps>) {
@@ -120,17 +120,6 @@
const invertedPosition = add(1, multiply(-1, position));
- this.tipHorizontal = multiply(
- invertedPosition,
- this.props.tipHorizontalOffset,
- );
-
- this.tipScale = interpolateNode(position, {
- inputRange: [0, 0.2, 0.8, 1],
- outputRange: [0, 0, 1, 1],
- extrapolate: Extrapolate.CLAMP,
- });
-
this.fixedTipVertical = multiply(
invertedPosition,
props.dimensions.height,
@@ -138,8 +127,14 @@
}
get tipContainerStyle(): AnimatedViewStyle {
- const { dimensions, route, tipContainerOpacity, tipVerticalBelow } =
- this.props;
+ const {
+ dimensions,
+ route,
+ tipContainerOpacity,
+ tipVerticalBelow,
+ tipHorizontal,
+ tipScale,
+ } = this.props;
const { initialCoordinates, verticalBounds } = route.params;
const { x, y, width, height } = initialCoordinates;
@@ -150,7 +145,7 @@
const transform: Array<ReanimatedTransform> = [];
- transform.push({ translateX: this.tipHorizontal });
+ transform.push({ translateX: tipHorizontal });
const extraLeftSpace = x;
const extraRightSpace = dimensions.width - width - x;
@@ -165,7 +160,7 @@
style.top =
Math.min(y + height, verticalBounds.y + verticalBounds.height) + margin;
transform.push({ translateY: tipVerticalBelow });
- transform.push({ scale: this.tipScale });
+ transform.push({ scale: tipScale });
style.transform = transform;
return style;
@@ -184,6 +179,8 @@
onTipContainerLayout,
tipContainerOpacity,
tipVerticalBelow,
+ tipHorizontal,
+ tipScale,
...navAndRouteForFlow
} = this.props;
@@ -331,6 +328,21 @@
[position],
);
+ const tipHorizontal = React.useMemo(() => {
+ const invertedPosition = add(1, multiply(-1, position));
+ return multiply(invertedPosition, tipHorizontalOffset);
+ }, [position, tipHorizontalOffset]);
+
+ const tipScale = React.useMemo(
+ () =>
+ interpolateNode(position, {
+ inputRange: [0, 0.2, 0.8, 1],
+ outputRange: [0, 0, 1, 1],
+ extrapolate: Extrapolate.CLAMP,
+ }),
+ [position],
+ );
+
return (
<NUXTipsOverlay
{...props}
@@ -345,6 +357,8 @@
onTipContainerLayout={onTipContainerLayout}
tipContainerOpacity={tipContainerOpacity}
tipVerticalBelow={tipVerticalBelow}
+ tipHorizontal={tipHorizontal}
+ tipScale={tipScale}
/>
);
}

File Metadata

Mime Type
text/plain
Expires
Fri, Sep 20, 6:31 PM (21 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2153385
Default Alt Text
D12982.diff (3 KB)

Event Timeline