nice-ui
Version:
React design system, components, and utilities
27 lines (26 loc) • 1.04 kB
JavaScript
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;
;