mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
9cc920be2f
Summary: Introduces `Rect`, an (eventual) replacement for `EdgeInsetsProp`. This new type is then used in `Pressability` to expand support such that `hitSlop` and `pressRectOffset` can be either a `Rect` or a numeric size. Changelog: [Internal] Reviewed By: yungsters Differential Revision: D18742616 fbshipit-source-id: 13dd360f68ab804839938fc950fa2f4b25d3ed8c
29 lines
650 B
JavaScript
29 lines
650 B
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
* @flow strict
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
export type Rect = $ReadOnly<{|
|
|
bottom?: ?number,
|
|
left?: ?number,
|
|
right?: ?number,
|
|
top?: ?number,
|
|
|}>;
|
|
|
|
export type RectOrSize = Rect | number;
|
|
|
|
export function createSquare(size: number): Rect {
|
|
return {bottom: size, left: size, right: size, top: size};
|
|
}
|
|
|
|
export function normalizeRect(rectOrSize: ?RectOrSize): ?Rect {
|
|
return typeof rectOrSize === 'number' ? createSquare(rectOrSize) : rectOrSize;
|
|
}
|