UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

39 lines (38 loc) 1.4 kB
'use strict'; import React from 'react'; export function assignRef(ref, instance) { if (typeof ref === 'function') { const cleanup = ref(instance); return typeof cleanup === 'function' ? cleanup : undefined; } if (ref) { ref.current = instance; } return undefined; } export function mergeRefs(...refs) { return instance => { const cleanups = refs.map(ref => assignRef(ref, instance) ?? (() => assignRef(ref, null))); return () => cleanups.forEach(cleanup => cleanup()); }; } function getCurrentReactOwner() { return ( // @ts-expect-error React secret internals aren't typed React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE?.A?.getOwner?.() || // @ts-expect-error React secret internals aren't typed React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED?.ReactCurrentOwner?.current || // @ts-expect-error React secret internals aren't typed React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE?.ReactCurrentOwner?.current ); } export function isReactRendering() { return !!getCurrentReactOwner(); } export function isFirstReactRender() { const currentOwner = getCurrentReactOwner(); // alternate is not null only after the first render and stores all the // data from the previous component render return currentOwner && !currentOwner?.alternate; } //# sourceMappingURL=reactUtils.js.map