import React, { useState } from "react"; import classNames from "classnames"; import CodeSource from "../CodeSource"; import Divider from "xy-divider"; import "xy-divider/assets/index.css"; import "./index.scss"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faExpand } from "@fortawesome/free-solid-svg-icons"; import { MessageBox } from "xy-messagebox"; import "xy-messagebox/assets/index.css"; export interface CodeBoxProps { /** * 附加类名 */ prefixCls?: string; /** * 根节点的附加类名 */ className?: string; /** * 内联样式 */ style?: React.CSSProperties; /** * ID */ id?: string; /** * demo代码 */ code: string; /** * 标题 */ title?: string; /** * 说明 */ desc?: string; /** * demo例子 */ children?: React.ReactNode; } export default function CodeBox(props: CodeBoxProps) { const { prefixCls = "code-box", className, style, id, code, title, desc, children } = props; const [visible, setVisibel] = useState(false); const classString = classNames(prefixCls, className, { [`${prefixCls}-visible`]: visible }); function toggleVisible() { setVisibel((pre) => !pre); } const example = (
{children}
{title}
{desc}
); return ( {example}
{example}
); }