diff --git a/android/src/main/java/com/horcrux/svg/VirtualView.java b/android/src/main/java/com/horcrux/svg/VirtualView.java index 421296d63..6683dbdda 100644 --- a/android/src/main/java/com/horcrux/svg/VirtualView.java +++ b/android/src/main/java/com/horcrux/svg/VirtualView.java @@ -334,6 +334,7 @@ public void setResponsible(boolean responsible) { Path clipPath = mClipNode.mClipRule == CLIP_RULE_EVENODD ? mClipNode.getPath(canvas, paint) : mClipNode.getPath(canvas, paint, Region.Op.UNION); clipPath.transform(mClipNode.mMatrix); + clipPath.transform(mClipNode.mTransform); switch (mClipNode.mClipRule) { case CLIP_RULE_EVENODD: clipPath.setFillType(Path.FillType.EVEN_ODD); diff --git a/ios/RNSVGNode.m b/ios/RNSVGNode.m index c028651ee..12008f3f4 100644 --- a/ios/RNSVGNode.m +++ b/ios/RNSVGNode.m @@ -314,7 +314,7 @@ - (CGPathRef)getClipPath:(CGContextRef)context if (_cachedClipPath) { CGPathRelease(_cachedClipPath); } - CGAffineTransform transform = _clipNode.matrix; + CGAffineTransform transform = CGAffineTransformConcat(_clipNode.matrix, _clipNode.transforms); _cachedClipPath = CGPathCreateCopyByTransformingPath([_clipNode getPath:context], &transform); CGPathRetain(_cachedClipPath); if (_clipMask) { diff --git a/src/elements/ClipPath.tsx b/src/elements/ClipPath.tsx index 533afa6d3..9af66729b 100644 --- a/src/elements/ClipPath.tsx +++ b/src/elements/ClipPath.tsx @@ -1,23 +1,19 @@ import React from 'react'; import { requireNativeComponent } from 'react-native'; -import extractClipPath from '../lib/extract/extractClipPath'; -import { TransformProps } from '../lib/extract/types'; +import extractProps, { propsAndStyles } from '../lib/extract/extractProps'; import Shape from './Shape'; -export default class ClipPath extends Shape<{ - id?: string; - clipPath?: string; - clipRule?: 'evenodd' | 'nonzero'; - transform?: number[] | string | TransformProps; -}> { +export default class ClipPath extends Shape<{}> { static displayName = 'ClipPath'; render() { const { props } = this; - const { id, children } = props; return ( - - {children} + + {props.children} ); } diff --git a/src/lib/extract/extractClipPath.ts b/src/lib/extract/extractClipPath.ts index da2b140fb..a7f4d698f 100644 --- a/src/lib/extract/extractClipPath.ts +++ b/src/lib/extract/extractClipPath.ts @@ -1,6 +1,5 @@ import { idPattern } from '../util'; import { ClipProps } from './types'; -import extractTransform from './extractTransform'; const clipRules: { evenodd: number; nonzero: number } = { evenodd: 0, @@ -8,11 +7,10 @@ const clipRules: { evenodd: number; nonzero: number } = { }; export default function extractClipPath(props: ClipProps) { - const { clipPath, clipRule, transform } = props; + const { clipPath, clipRule } = props; const extracted: { clipPath?: string; clipRule?: number; - matrix?: number[]; } = {}; if (clipRule) { @@ -33,9 +31,5 @@ export default function extractClipPath(props: ClipProps) { } } - if (transform) { - extracted.matrix = extractTransform(transform); - } - return extracted; } diff --git a/src/lib/extract/types.ts b/src/lib/extract/types.ts index 4090ac77e..97e699920 100644 --- a/src/lib/extract/types.ts +++ b/src/lib/extract/types.ts @@ -92,5 +92,4 @@ export type StrokeProps = { export type ClipProps = { clipPath?: string; clipRule?: 'evenodd' | 'nonzero'; - transform?: number[] | string | TransformProps; };