UNPKG

react-native-gesture-handler

Version:

Declarative API exposing native platform touch and gesture system to React Native

40 lines (30 loc) 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = findNodeHandle; var _utils = require("./web/utils"); function findNodeHandle(viewRef) { // Old API assumes that child handler is HTMLElement. // However, if we nest handlers, we will get ref to another handler. // In that case, we want to recursively call findNodeHandle with new handler viewTag (which can also be ref to another handler). if ((viewRef === null || viewRef === void 0 ? void 0 : viewRef.viewTag) !== undefined) { return findNodeHandle(viewRef.viewTag); } if (viewRef instanceof Element) { if (viewRef.style.display === 'contents') { return findNodeHandle(viewRef.firstChild); } return viewRef; } if ((0, _utils.isRNSVGElement)(viewRef)) { return viewRef.elementRef.current; } // In new API, we receive ref object which `current` field points to wrapper `div` with `display: contents;`. // We want to return the first descendant (in DFS order) that doesn't have this property. let element = viewRef === null || viewRef === void 0 ? void 0 : viewRef.current; while (element && element.style.display === 'contents') { element = element.firstChild; } return element; } //# sourceMappingURL=findNodeHandle.web.js.map