import React, { useCallback } from 'react'; import { JsonViewer, CodeHighlight, Collapse, Button } from '../../index'; import { SideBarCollapseProps } from '../interface'; import cls from 'classnames'; import { cssClasses, strings } from '@douyinfe/semi-foundation/sidebar/constants'; import { IconCodeStroked, IconFullScreenStroked, IconFile } from '@douyinfe/semi-icons'; import { JsonViewerProps } from '../../jsonViewer'; import { CodeHighlightProps } from '../../codeHighlight'; const collapseCls = cssClasses.COLLAPSE; const prefixCls = cssClasses.SIDEBAR; export interface CodeItemProps { name?: string; key?: string; isJson?: boolean; language?: string; content?: string; jsonViewerProps?: JsonViewerProps; codeHighlightProps?: CodeHighlightProps } // interface CodeDetail { // name?: string; // key?: string; // code?: CodeItemProps // } export interface CodeContentProps extends SideBarCollapseProps { style?: React.CSSProperties; className?: string; codes?: CodeItemProps[]; onExpand?: (e: React.MouseEvent, code: CodeItemProps, mode: string) => void } export const CodeItem = React.memo((props: CodeItemProps) => { const { language, content, isJson, jsonViewerProps = {}, codeHighlightProps = {} } = props; return