RN: Replace `ImageResizeMode` w/ Flow Type
Summary: Replaces `ImageResizeMode` with a Flow type. JavaScript enums provide little value when you have a type system. Reviewed By: bvaughn, TheSavior Differential Revision: D10057237 fbshipit-source-id: f108b60795a6d82a6786421e4ac72aeedc53bee8
This commit is contained in:
parent
9104b04261
commit
d16ec74236
|
@ -4,49 +4,33 @@
|
|||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow
|
||||
* @flow strict
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/* $FlowFixMe(>=0.54.0 site=react_native_oss) This comment suppresses an error
|
||||
* found when Flow v0.54 was deployed. To see the error delete this comment and
|
||||
* run Flow. */
|
||||
const keyMirror = require('fbjs/lib/keyMirror');
|
||||
|
||||
/**
|
||||
* ImageResizeMode - Enum for different image resizing modes, set via
|
||||
* `resizeMode` style property on `<Image>` components.
|
||||
* ImageResizeMode defines valid values for different image resizing modes set
|
||||
* via the `resizeMode` style property on `<Image>`.
|
||||
*/
|
||||
const ImageResizeMode = keyMirror({
|
||||
/**
|
||||
* contain - The image will be resized such that it will be completely
|
||||
* visible, contained within the frame of the View.
|
||||
*/
|
||||
contain: null,
|
||||
/**
|
||||
* cover - The image will be resized such that the entire area of the view
|
||||
* is covered by the image, potentially clipping parts of the image.
|
||||
*/
|
||||
cover: null,
|
||||
/**
|
||||
* stretch - The image will be stretched to fill the entire frame of the
|
||||
* view without clipping. This may change the aspect ratio of the image,
|
||||
* distorting it.
|
||||
*/
|
||||
stretch: null,
|
||||
/**
|
||||
* center - The image will be scaled down such that it is completely visible,
|
||||
* if bigger than the area of the view.
|
||||
* The image will not be scaled up.
|
||||
*/
|
||||
center: null,
|
||||
export type ImageResizeMode =
|
||||
// Resize by scaling down such that it is completely visible, if bigger than
|
||||
// the area of the view. The image will not be scaled up.
|
||||
| 'center'
|
||||
|
||||
/**
|
||||
* repeat - The image will be repeated to cover the frame of the View. The
|
||||
* image will keep it's size and aspect ratio.
|
||||
*/
|
||||
repeat: null,
|
||||
});
|
||||
// Resize such that it will be completely visible, contained within the frame
|
||||
// of the View.
|
||||
| 'contain'
|
||||
|
||||
module.exports = ImageResizeMode;
|
||||
// Resize such that the entire area of the view is covered by the image,
|
||||
// potentially clipping parts of the image.
|
||||
| 'cover'
|
||||
|
||||
// Resize by repeating to cover the frame of the View. The image will keep its
|
||||
// size and aspect ratio.
|
||||
| 'repeat'
|
||||
|
||||
// Resize by stretching it to fill the entire frame of the view without
|
||||
// clipping. This may change the aspect ratio of the image, distorting it.
|
||||
| 'stretch';
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
'use strict';
|
||||
|
||||
const DeprecatedColorPropType = require('DeprecatedColorPropType');
|
||||
const ImageResizeMode = require('ImageResizeMode');
|
||||
const LayoutPropTypes = require('LayoutPropTypes');
|
||||
const ReactPropTypes = require('prop-types');
|
||||
const DeprecatedShadowPropTypesIOS = require('DeprecatedShadowPropTypesIOS');
|
||||
|
@ -20,7 +19,13 @@ const ImageStylePropTypes = {
|
|||
...LayoutPropTypes,
|
||||
...DeprecatedShadowPropTypesIOS,
|
||||
...DeprecatedTransformPropTypes,
|
||||
resizeMode: ReactPropTypes.oneOf(Object.keys(ImageResizeMode)),
|
||||
resizeMode: ReactPropTypes.oneOf([
|
||||
'center',
|
||||
'contain',
|
||||
'cover',
|
||||
'repeat',
|
||||
'stretch',
|
||||
]),
|
||||
backfaceVisibility: ReactPropTypes.oneOf(['visible', 'hidden']),
|
||||
backgroundColor: DeprecatedColorPropType,
|
||||
borderColor: DeprecatedColorPropType,
|
||||
|
|
Loading…
Reference in New Issue