@native-html/heuristic-table-plugin
Version:
🔠A 100% native component using heuristics to render tables in react-native-render-html
64 lines (55 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useHtmlTableProps;
var _react = require("react");
var _reactNativeRenderHtml = require("react-native-render-html");
var _TableLayout = _interopRequireDefault(require("./TableLayout"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function useTableLayout({
tnode,
settings
}) {
return (0, _react.useMemo)(() => {
return new _TableLayout.default(tnode, settings);
}, [tnode, settings]);
}
/**
* Customize the rendering logic of the table renderer via this hook.
*
* @param props - Props from custom renderer props.
* @param options - Customize this hook behavior.
*
* @returns props for the {@link HTMLTable} component.
*
* @public
*/
function useHtmlTableProps({
sharedProps,
tnode,
...props
}, options = {}) {
var _table$forceStretch;
const table = (0, _reactNativeRenderHtml.useRendererProps)('table');
const forceStretch = (_table$forceStretch = table === null || table === void 0 ? void 0 : table.forceStretch) !== null && _table$forceStretch !== void 0 ? _table$forceStretch : false;
const sharedContentWidth = (0, _reactNativeRenderHtml.useContentWidth)();
const contentWidth = typeof options.overrideContentWidth === 'number' ? options.overrideContentWidth : sharedContentWidth;
const settings = (0, _react.useMemo)(() => ({
contentWidth,
forceStretch
}), [contentWidth, forceStretch]);
const layout = useTableLayout({
tnode,
settings
});
return {
layout,
settings,
config: table || {},
sharedProps,
tnode,
...props
};
}
//# sourceMappingURL=useHtmlTableProps.js.map