UNPKG

nice-ui

Version:

React design system, components, and utilities

27 lines (26 loc) 1.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const nano_theme_1 = require("nano-theme"); const slugify_1 = require("slugify"); const getText_1 = require("../../../../markdown/util/getText"); const blockClass = (0, nano_theme_1.rule)({ cursor: 'n-resize', }); const Heading = ({ children, ast, idx }) => { const node = ast.nodes[idx]; const Component = ('h' + node.depth); const [slug] = React.useState(() => { const text = (0, getText_1.default)(ast, idx, 1024); const slug = (0, slugify_1.default)(text); return slug; }); const handleClick = () => { location.hash = '#' + slug; }; return (React.createElement(Component, { id: slug, className: blockClass, onClick: handleClick }, children)); }; const renderHeading = (renderers, ast, idx, props, state) => { return (React.createElement(Heading, { ast: ast, idx: idx }, renderers.children(renderers, ast, idx, props, state))); }; exports.default = renderHeading;