mirror of
https://github.com/zoriya/react-native-svg.git
synced 2026-06-07 16:54:52 +00:00
Implement useNativeDriver support for animation of some text properties
This commit is contained in:
@@ -112,12 +112,12 @@ class RenderableViewManager<T extends VirtualNode> extends ViewGroupManager<Rend
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ReactProp(name = "positionX")
|
@ReactProp(name = "positionX")
|
||||||
public void setPositionX(RenderableView<TextShadowNode> node, @Nullable ReadableArray positionX) {
|
public void setPositionX(RenderableView<TextShadowNode> node, Dynamic positionX) {
|
||||||
node.shadowNode.setPositionX(positionX);
|
node.shadowNode.setPositionX(positionX);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ReactProp(name = "positionY")
|
@ReactProp(name = "positionY")
|
||||||
public void setPositionY(RenderableView<TextShadowNode> node, @Nullable ReadableArray positionY) {
|
public void setPositionY(RenderableView<TextShadowNode> node, Dynamic positionY) {
|
||||||
node.shadowNode.setPositionY(positionY);
|
node.shadowNode.setPositionY(positionY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,6 +135,16 @@ class RenderableViewManager<T extends VirtualNode> extends ViewGroupManager<Rend
|
|||||||
public void setContent(RenderableView<TSpanShadowNode> node, @Nullable String content) {
|
public void setContent(RenderableView<TSpanShadowNode> node, @Nullable String content) {
|
||||||
node.shadowNode.setContent(content);
|
node.shadowNode.setContent(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ReactProp(name = "positionX")
|
||||||
|
public void setPositionX(RenderableView<TSpanShadowNode> node, Dynamic positionX) {
|
||||||
|
node.shadowNode.setPositionX(positionX);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactProp(name = "positionY")
|
||||||
|
public void setPositionY(RenderableView<TSpanShadowNode> node, Dynamic positionY) {
|
||||||
|
node.shadowNode.setPositionY(positionY);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ import android.graphics.Paint;
|
|||||||
import android.graphics.Path;
|
import android.graphics.Path;
|
||||||
import android.graphics.Region;
|
import android.graphics.Region;
|
||||||
|
|
||||||
|
import com.facebook.react.bridge.Dynamic;
|
||||||
|
import com.facebook.react.bridge.JavaOnlyArray;
|
||||||
import com.facebook.react.bridge.ReadableArray;
|
import com.facebook.react.bridge.ReadableArray;
|
||||||
import com.facebook.react.bridge.ReadableMap;
|
import com.facebook.react.bridge.ReadableMap;
|
||||||
import com.facebook.react.uimanager.ReactShadowNode;
|
import com.facebook.react.uimanager.ReactShadowNode;
|
||||||
@@ -107,14 +109,48 @@ class TextShadowNode extends GroupShadowNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ReactProp(name = "positionX")
|
@ReactProp(name = "positionX")
|
||||||
public void setPositionX(@Nullable ReadableArray positionX) {
|
public void setPositionX(Dynamic positionX) {
|
||||||
mPositionX = positionX;
|
if (positionX.isNull()) {
|
||||||
|
mPositionX = null;
|
||||||
|
} else {
|
||||||
|
switch (positionX.getType()) {
|
||||||
|
case Array: {
|
||||||
|
mPositionX = positionX.asArray();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case String: {
|
||||||
|
mPositionX = JavaOnlyArray.of(positionX.asString());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case Number: {
|
||||||
|
mPositionX = JavaOnlyArray.of(String.valueOf(positionX.asDouble()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
markUpdated();
|
markUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ReactProp(name = "positionY")
|
@ReactProp(name = "positionY")
|
||||||
public void setPositionY(@Nullable ReadableArray positionY) {
|
public void setPositionY(Dynamic positionY) {
|
||||||
mPositionY = positionY;
|
if (positionY.isNull()) {
|
||||||
|
mPositionY = null;
|
||||||
|
} else {
|
||||||
|
switch (positionY.getType()) {
|
||||||
|
case Array: {
|
||||||
|
mPositionY = positionY.asArray();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case String: {
|
||||||
|
mPositionY = JavaOnlyArray.of(positionY.asString());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case Number: {
|
||||||
|
mPositionY = JavaOnlyArray.of(String.valueOf(positionY.asDouble()));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
markUpdated();
|
markUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,29 @@ RCT_EXPORT_MODULE()
|
|||||||
RCT_EXPORT_VIEW_PROPERTY(textAnchor, RNSVGTextAnchor)
|
RCT_EXPORT_VIEW_PROPERTY(textAnchor, RNSVGTextAnchor)
|
||||||
RCT_EXPORT_VIEW_PROPERTY(deltaX, NSArray<NSString *>)
|
RCT_EXPORT_VIEW_PROPERTY(deltaX, NSArray<NSString *>)
|
||||||
RCT_EXPORT_VIEW_PROPERTY(deltaY, NSArray<NSString *>)
|
RCT_EXPORT_VIEW_PROPERTY(deltaY, NSArray<NSString *>)
|
||||||
RCT_EXPORT_VIEW_PROPERTY(positionX, NSArray<NSString *>)
|
RCT_CUSTOM_VIEW_PROPERTY(positionX, id, RNSVGText)
|
||||||
RCT_EXPORT_VIEW_PROPERTY(positionY, NSArray<NSString *>)
|
{
|
||||||
|
if ([json isKindOfClass:[NSArray class]]) {
|
||||||
|
NSArray<NSString *> *arrayValue = (NSArray<NSString *> *)json;
|
||||||
|
view.positionX = arrayValue;
|
||||||
|
} else if ([json isKindOfClass:[NSString class]]) {
|
||||||
|
view.positionX = [NSArray arrayWithObject:json];
|
||||||
|
} else if ([json isKindOfClass:[NSNumber class]]) {
|
||||||
|
view.positionX = [NSArray arrayWithObject:[NSString stringWithFormat:@"%f", [json floatValue]]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RCT_CUSTOM_VIEW_PROPERTY(positionY, id, RNSVGText)
|
||||||
|
{
|
||||||
|
if ([json isKindOfClass:[NSArray class]]) {
|
||||||
|
NSArray<NSString *> *arrayValue = (NSArray<NSString *> *)json;
|
||||||
|
view.positionY = arrayValue;
|
||||||
|
} else if ([json isKindOfClass:[NSString class]]) {
|
||||||
|
view.positionY = [NSArray arrayWithObject:json];
|
||||||
|
} else if ([json isKindOfClass:[NSNumber class]]) {
|
||||||
|
view.positionY = [NSArray arrayWithObject:[NSString stringWithFormat:@"%f", [json floatValue]]];
|
||||||
|
}
|
||||||
|
}
|
||||||
RCT_EXPORT_VIEW_PROPERTY(rotate, NSArray<NSString *>)
|
RCT_EXPORT_VIEW_PROPERTY(rotate, NSArray<NSString *>)
|
||||||
RCT_EXPORT_VIEW_PROPERTY(font, NSDictionary)
|
RCT_EXPORT_VIEW_PROPERTY(font, NSDictionary)
|
||||||
RCT_EXPORT_VIEW_PROPERTY(textLength, NSString)
|
RCT_EXPORT_VIEW_PROPERTY(textLength, NSString)
|
||||||
|
|||||||
Reference in New Issue
Block a user