@tamagui/react-native-web-lite
Version:
React Native for Web
60 lines (59 loc) • 1.82 kB
JavaScript
import { AnimatedNode } from "./AnimatedNode.mjs";
import { NativeAnimatedHelper } from "../NativeAnimatedHelper.mjs";
class AnimatedWithChildren extends AnimatedNode {
_children;
constructor() {
super();
this._children = [];
}
__makeNative(platformConfig) {
if (!this.__isNative) {
this.__isNative = true;
for (const child of this._children) {
child.__makeNative(platformConfig);
NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());
}
}
super.__makeNative(platformConfig);
}
__addChild(child) {
if (this._children.length === 0) {
this.__attach();
}
this._children.push(child);
if (this.__isNative) {
child.__makeNative(this.__getPlatformConfig());
NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());
}
}
__removeChild(child) {
const index = this._children.indexOf(child);
if (index === -1) {
console.warn("Trying to remove a child that doesn't exist");
return;
}
if (this.__isNative && child.__isNative) {
NativeAnimatedHelper.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());
}
this._children.splice(index, 1);
if (this._children.length === 0) {
this.__detach();
}
}
__getChildren() {
return this._children;
}
__callListeners(value) {
super.__callListeners(value);
if (!this.__isNative) {
for (const child of this._children) {
if (child.__getValue) {
child.__callListeners(child.__getValue());
}
}
}
}
}
var AnimatedWithChildren_default = AnimatedWithChildren;
export { AnimatedWithChildren, AnimatedWithChildren_default as default };
//# sourceMappingURL=AnimatedWithChildren.mjs.map