UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

68 lines (55 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeViewDescriptorsSet = makeViewDescriptorsSet; exports.makeViewsRefSet = makeViewsRefSet; var _react = require("react"); var _core = require("./core"); function makeViewDescriptorsSet() { const sharableViewDescriptors = (0, _core.makeMutable)([]); const data = { sharableViewDescriptors, add: item => { sharableViewDescriptors.modify(descriptors => { 'worklet'; const index = descriptors.findIndex(descriptor => descriptor.tag === item.tag); if (index !== -1) { descriptors[index] = item; } else { descriptors.push(item); } return descriptors; }); }, remove: viewTag => { sharableViewDescriptors.modify(descriptors => { 'worklet'; const index = descriptors.findIndex(descriptor => descriptor.tag === viewTag); if (index !== -1) { descriptors.splice(index, 1); } return descriptors; }); } }; return data; } function makeViewsRefSet() { const ref = (0, _react.useRef)(null); if (ref.current === null) { const data = { items: new Set(), add: item => { if (data.items.has(item)) return; data.items.add(item); }, remove: item => { data.items.delete(item); } }; ref.current = data; } return ref.current; } //# sourceMappingURL=ViewDescriptorsSet.js.map