Skip to content

Commit

Permalink
add support for borderTopLeftRaduis and the three other one-corner-on…
Browse files Browse the repository at this point in the history
…ly border radius props to ReactImageManager (#1871)
  • Loading branch information
zholobov authored and rozele committed Jul 11, 2018
1 parent 5d71fcd commit 2ffc72e
Showing 1 changed file with 41 additions and 3 deletions.
44 changes: 41 additions & 3 deletions ReactWindows/ReactNative/Views/Image/ReactImageManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,15 +161,53 @@ public void SetSource(Border view, JArray sources)
}
}

/// <summary>
/// Enum values correspond to positions of prop names in ReactPropGroup attribute
/// applied to <see cref="SetBorderRadius(Border, int, double)"/>
/// </summary>
private enum Radius
{
All,
TopLeft,
TopRight,
BottomLeft,
BottomRight,
}

/// <summary>
/// The border radius of the <see cref="ReactRootView"/>.
/// </summary>
/// <param name="view">The image view instance.</param>
/// <param name="index">The prop index.</param>
/// <param name="radius">The border radius value.</param>
[ReactProp("borderRadius")]
public void SetBorderRadius(Border view, double radius)
[ReactPropGroup(
ViewProps.BorderRadius,
ViewProps.BorderTopLeftRadius,
ViewProps.BorderTopRightRadius,
ViewProps.BorderBottomLeftRadius,
ViewProps.BorderBottomRightRadius)]
public void SetBorderRadius(Border view, int index, double radius)
{
view.CornerRadius = new CornerRadius(radius);
var cornerRadius = view.CornerRadius;
switch ((Radius)index)
{
case Radius.All:
cornerRadius = new CornerRadius(radius);
break;
case Radius.TopLeft:
cornerRadius.TopLeft = radius;
break;
case Radius.TopRight:
cornerRadius.TopRight = radius;
break;
case Radius.BottomLeft:
cornerRadius.BottomLeft = radius;
break;
case Radius.BottomRight:
cornerRadius.BottomRight = radius;
break;
}
view.CornerRadius = cornerRadius;
}

/// <summary>
Expand Down

0 comments on commit 2ffc72e

Please sign in to comment.