UNPKG

nice-ui

Version:

React design system, components, and utilities

34 lines (33 loc) 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const MarkdownBlock_1 = require("../../util/MarkdownBlock"); const react_embed_1 = require("react-embed"); const context_1 = require("../../context"); const rootDepth_1 = require("../../util/rootDepth"); const MarkdownFullWidthBlock_1 = require("../../util/MarkdownFullWidthBlock"); const { useContext, useMemo, useEffect } = React; const renderReactEmbedWrap = (children) => { return (React.createElement("div", { style: { display: 'flex', justifyContent: 'center', alignItems: 'center', width: '100%', } }, children)); }; const UrlBlock = ({ idx, url = '', renderVoid }) => { const { ast, props, expandBlock } = useContext(context_1.context); const isExpandable = useMemo(() => (props.isExpandable ? props.isExpandable(url) : false), [props.isExpandable, url]); useEffect(() => { if (!isExpandable) return; const depth = (0, rootDepth_1.default)(ast, idx); if (depth > 3) return; expandBlock(idx, url); }, [idx, url, isExpandable]); const element = isExpandable ? (React.createElement(MarkdownBlock_1.default, { idx: idx }, props.LoadingBlock ? React.createElement(props.LoadingBlock, { idx: idx }) : React.createElement("div", null))) : (React.createElement(MarkdownBlock_1.default, { idx: idx }, React.createElement(react_embed_1.default, { url: url, renderWrap: renderReactEmbedWrap, renderVoid: renderVoid }))); return props.isFullWidth ? React.createElement(MarkdownFullWidthBlock_1.default, null, element) : element; }; exports.default = UrlBlock;