UNPKG

orionsoft-react-scripts

Version:

Orionsoft Configuration and scripts for Create React App.

47 lines (41 loc) 1.42 kB
function traverseRenderedChildren(internalInstance, callback, argument) { callback(internalInstance, argument); if (internalInstance._renderedComponent) { traverseRenderedChildren( internalInstance._renderedComponent, callback, argument ); } else { for (let key in internalInstance._renderedChildren) { if (internalInstance._renderedChildren.hasOwnProperty(key)) { traverseRenderedChildren( internalInstance._renderedChildren[key], callback, argument ); } } } } function setPendingForceUpdate(internalInstance) { if (internalInstance._pendingForceUpdate === false) { internalInstance._pendingForceUpdate = true; } } function forceUpdateIfPending(internalInstance) { if (internalInstance._pendingForceUpdate === true) { const publicInstance = internalInstance._instance; const { updater } = publicInstance; if (typeof publicInstance.forceUpdate === 'function') { publicInstance.forceUpdate(); } else if (updater && typeof updater.enqueueForceUpdate === 'function') { updater.enqueueForceUpdate(publicInstance); } } } export default function deepForceUpdate(instance) { const internalInstance = instance._reactInternalInstance; traverseRenderedChildren(internalInstance, setPendingForceUpdate); traverseRenderedChildren(internalInstance, forceUpdateIfPending); }