Skip to content

Commit 2244a86

Browse files
rocmanfacebook-github-bot-4
authored andcommitted
enable the minWidth/maxWidth/minHeight/maxHeight features
Summary: Closes facebook/react-native#4183 Reviewed By: svcscm Differential Revision: D2663931 Pulled By: nicklockwood fb-gh-sync-id: 53d699fbb6041e3623eb78f1045cac28821efde8
1 parent 0491142 commit 2244a86

4 files changed

Lines changed: 29 additions & 13 deletions

File tree

Libraries/StyleSheet/LayoutPropTypes.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ var ReactPropTypes = require('ReactPropTypes');
2727
*/
2828
var LayoutPropTypes = {
2929
width: ReactPropTypes.number,
30+
maxWidth: ReactPropTypes.number,
31+
minWidth: ReactPropTypes.number,
3032
height: ReactPropTypes.number,
33+
maxHeight: ReactPropTypes.number,
34+
minHeight: ReactPropTypes.number,
3135
top: ReactPropTypes.number,
3236
left: ReactPropTypes.number,
3337
right: ReactPropTypes.number,

React/Views/RCTShadowView.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ typedef void (^RCTApplierBlock)(NSDictionary<NSNumber *, UIView *> *viewRegistry
6363

6464
@property (nonatomic, assign) CGFloat width;
6565
@property (nonatomic, assign) CGFloat height;
66+
@property (nonatomic, assign) CGFloat minWidth;
67+
@property (nonatomic, assign) CGFloat minHeight;
68+
@property (nonatomic, assign) CGFloat maxWidth;
69+
@property (nonatomic, assign) CGFloat maxHeight;
6670
@property (nonatomic, assign) CGRect frame;
6771

6872
- (void)setTopLeft:(CGPoint)topLeft;

React/Views/RCTShadowView.m

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -494,19 +494,23 @@ - (CGFloat)border##prop##Width \
494494

495495
// Dimensions
496496

497-
#define RCT_DIMENSIONS_PROPERTY(setProp, getProp, cssProp) \
498-
- (void)set##setProp:(CGFloat)value \
499-
{ \
500-
_cssNode->style.dimensions[CSS_##cssProp] = value; \
501-
[self dirtyLayout]; \
502-
} \
503-
- (CGFloat)getProp \
504-
{ \
505-
return _cssNode->style.dimensions[CSS_##cssProp]; \
506-
}
507-
508-
RCT_DIMENSIONS_PROPERTY(Width, width, WIDTH)
509-
RCT_DIMENSIONS_PROPERTY(Height, height, HEIGHT)
497+
#define RCT_DIMENSIONS_PROPERTY(setProp, getProp, cssProp, dimensions) \
498+
- (void)set##setProp:(CGFloat)value \
499+
{ \
500+
_cssNode->style.dimensions[CSS_##cssProp] = value; \
501+
[self dirtyLayout]; \
502+
} \
503+
- (CGFloat)getProp \
504+
{ \
505+
return _cssNode->style.dimensions[CSS_##cssProp]; \
506+
}
507+
508+
RCT_DIMENSIONS_PROPERTY(Width, width, WIDTH, dimensions)
509+
RCT_DIMENSIONS_PROPERTY(Height, height, HEIGHT, dimensions)
510+
RCT_DIMENSIONS_PROPERTY(MinWidth, minWidth, WIDTH, minDimensions)
511+
RCT_DIMENSIONS_PROPERTY(MinHeight, minHeight, HEIGHT, minDimensions)
512+
RCT_DIMENSIONS_PROPERTY(MaxWidth, maxWidth, WIDTH, maxDimensions)
513+
RCT_DIMENSIONS_PROPERTY(MaxHeight, maxHeight, HEIGHT, maxDimensions)
510514

511515
// Position
512516

React/Views/RCTViewManager.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,10 @@ - (RCTViewManagerUIBlock)uiBlockToAmendWithShadowViewRegistry:(__unused NSDictio
237237

238238
RCT_EXPORT_SHADOW_PROPERTY(width, CGFloat)
239239
RCT_EXPORT_SHADOW_PROPERTY(height, CGFloat)
240+
RCT_EXPORT_SHADOW_PROPERTY(minWidth, CGFloat)
241+
RCT_EXPORT_SHADOW_PROPERTY(minHeight, CGFloat)
242+
RCT_EXPORT_SHADOW_PROPERTY(maxWidth, CGFloat)
243+
RCT_EXPORT_SHADOW_PROPERTY(maxHeight, CGFloat)
240244

241245
RCT_EXPORT_SHADOW_PROPERTY(borderTopWidth, CGFloat)
242246
RCT_EXPORT_SHADOW_PROPERTY(borderRightWidth, CGFloat)

0 commit comments

Comments
 (0)