mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: As part of https://github.com/facebook/react-native/issues/34425, `objectFit` value of `'none'` needs to be supported for the Image component. In order to support this, a new value must also be added to support the equivalent in `resizeMode`. With this new value, the image will not be resized at all and keeping it in the initial position within a container (see in the screenshots). In this PR the support is added for both Fabric and Paper. ## Changelog: [GENERAL] [ADDED] - image `resizeMode` and `objectFit` support for `'none'`. Pull Request resolved: https://github.com/facebook/react-native/pull/47110 Test Plan: Using the `rn-tester`, there is a new image example for both `resizeMode` and `objectFit`. See below the results for both Android and iOS: <details> <summary>Fabric screenshots</summary> **Android:** | Resize Mode | Object Fit | | --------- | ---------- | |  |  | **iOS:** | Resize Mode | Object Fit | | --------- | ---------- | |  |  | </details> <details> <summary>Paper screenshots</summary> **Android:** | Resize Mode | Object Fit | | --------- | ---------- | |  |  | **iOS:** | Resize Mode | Object Fit | | --------- | ---------- | |  |  | </details> Reviewed By: fabriziocucci Differential Revision: D65420002 Pulled By: javache fbshipit-source-id: df3bc8fc931b88cde5fe51d89685bf327e30ed9f
26 lines
595 B
JavaScript
26 lines
595 B
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow strict
|
|
* @format
|
|
*/
|
|
|
|
import type {ImageResizeMode} from './ImageResizeMode';
|
|
|
|
const objectFitMap: {[string]: ImageResizeMode} = {
|
|
contain: 'contain',
|
|
cover: 'cover',
|
|
fill: 'stretch',
|
|
'scale-down': 'contain',
|
|
none: 'none',
|
|
};
|
|
|
|
export function convertObjectFitToResizeMode(
|
|
objectFit: ?string,
|
|
): ?ImageResizeMode {
|
|
return objectFit != null ? objectFitMap[objectFit] : undefined;
|
|
}
|