UNPKG

react-native-filament

Version:

A real-time physically based 3D rendering engine for React Native

37 lines (36 loc) 1.5 kB
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import React, { useCallback } from 'react'; import { RenderCallbackContext } from './RenderCallbackContext'; import { FilamentView } from './FilamentView'; import { StyleSheet } from 'react-native'; /** * This is the component actually exposed to the user. It wraps the `FilamentView` and adds the renderCallbacks. * @private */ export function FilamentViewWithRenderCallbacks({ children, renderCallback: renderCallbackProp, ...forwardProps }) { const renderCallbacks = RenderCallbackContext.useRenderCallbacks(); const renderCallback = useCallback(frameInfo => { 'worklet'; renderCallbackProp === null || renderCallbackProp === void 0 || renderCallbackProp(frameInfo); renderCallbacks.value.forEach(({ callback }) => { callback(frameInfo); }); }, [renderCallbackProp, renderCallbacks]); return /*#__PURE__*/React.createElement(FilamentView, _extends({ renderCallback: renderCallback }, forwardProps, { style: [styles.container, forwardProps.style] }), children); } const styles = StyleSheet.create({ container: { flex: 1 } }); //# sourceMappingURL=FilamentViewWithRenderCallbacks.js.map