@vandrei977/react-native-render-html
Version:
The hackable, full-featured Open Source HTML rendering solution for React Native.
101 lines (98 loc) • 5.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = RenderHTMLConfigProvider;
exports.renderHTMLConfigPropTypes = void 0;
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _RenderersPropsProvider = _interopRequireDefault(require("./context/RenderersPropsProvider"));
var _SharedPropsProvider = _interopRequireDefault(require("./context/SharedPropsProvider"));
var _TChildrenRendererContext = _interopRequireDefault(require("./context/TChildrenRendererContext"));
var _TNodeChildrenRenderer = _interopRequireDefault(require("./TNodeChildrenRenderer"));
var _TChildrenRenderer = _interopRequireDefault(require("./TChildrenRenderer"));
var _sourceLoaderContext = _interopRequireWildcard(require("./context/sourceLoaderContext"));
var _RenderRegistryProvider = _interopRequireDefault(require("./context/RenderRegistryProvider"));
var _TRenderEngineProvider = require("./TRenderEngineProvider");
var _useProfiler = _interopRequireDefault(require("./hooks/useProfiler"));
var _ListStyleSpecsProvider = _interopRequireDefault(require("./context/ListStyleSpecsProvider"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
const childrenRendererContext = {
TChildrenRenderer: _TChildrenRenderer.default,
TNodeChildrenRenderer: _TNodeChildrenRenderer.default
};
const renderHTMLConfigPropTypes = exports.renderHTMLConfigPropTypes = {
bypassAnonymousTPhrasingNodes: _propTypes.default.bool,
defaultTextProps: _propTypes.default.object,
defaultViewProps: _propTypes.default.object,
enableExperimentalBRCollapsing: _propTypes.default.bool,
enableExperimentalGhostLinesPrevention: _propTypes.default.bool,
enableExperimentalMarginCollapsing: _propTypes.default.bool,
remoteErrorView: _propTypes.default.func,
remoteLoadingView: _propTypes.default.func,
handleSelection: _propTypes.default.func,
handleWordTap: _propTypes.default.func,
shouldHandleTap: _propTypes.default.bool,
debug: _propTypes.default.bool,
computeEmbeddedMaxWidth: _propTypes.default.func,
renderersProps: _propTypes.default.object,
WebView: _propTypes.default.any,
GenericPressable: _propTypes.default.any,
defaultWebViewProps: _propTypes.default.object,
pressableHightlightColor: _propTypes.default.string,
customListStyleSpecs: _propTypes.default.object,
renderers: _propTypes.default.object,
provideEmbeddedHeaders: _propTypes.default.func
};
/**
* A component to provide configuration for {@link RenderHTMLSource}
* descendants, to be used in conjunction with {@link TRenderEngineProvider}.
*/
function RenderHTMLConfigProvider(props) {
const {
remoteErrorView,
remoteLoadingView,
renderersProps,
children,
renderers,
...sharedProps
} = props;
const engine = (0, _TRenderEngineProvider.useAmbientTRenderEngine)();
const profile = (0, _useProfiler.default)({
prop: 'remoteErrorView or remoteLoadingView'
});
const sourceLoaderConfig = (0, _react.useMemo)(() => {
typeof __DEV__ === 'boolean' && __DEV__ && profile();
return {
remoteErrorView: remoteErrorView || _sourceLoaderContext.defaultRenderError,
remoteLoadingView: remoteLoadingView || _sourceLoaderContext.defaultRenderLoading
};
}, [remoteErrorView, remoteLoadingView, profile]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderRegistryProvider.default, {
renderers: renderers,
elementModels: engine.getHTMLElementsModels(),
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SharedPropsProvider.default, {
...sharedProps,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListStyleSpecsProvider.default, {
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderersPropsProvider.default, {
renderersProps: renderersProps,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TChildrenRendererContext.default.Provider, {
value: childrenRendererContext,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sourceLoaderContext.default.Provider, {
value: sourceLoaderConfig,
children: children
})
})
})
})
})
});
}
/**
* @ignore
*/
RenderHTMLConfigProvider.propTypes = renderHTMLConfigPropTypes;
//# sourceMappingURL=RenderHTMLConfigProvider.js.map