import React, { useContext, useState } from 'react'; import { DumiDemoGrid, FormattedMessage } from 'dumi'; import { Tooltip } from 'antd'; import { BugFilled, BugOutlined, CodeFilled, CodeOutlined } from '@ant-design/icons'; import classNames from 'classnames'; import DemoContext from '../../slots/DemoContext'; const DemoWrapper: typeof DumiDemoGrid = ({ items }) => { const { showDebug, setShowDebug } = useContext(DemoContext); const [expandAll, setExpandAll] = useState(false); const expandTriggerClass = classNames('code-box-expand-trigger', { 'code-box-expand-trigger-active': expandAll, }); const handleVisibleToggle = () => { setShowDebug?.(!showDebug); }; const handleExpandToggle = () => { setExpandAll(!expandAll); }; const visibleDemos = showDebug ? items : items.filter((item) => !item.previewerProps.debug); const filteredItems = visibleDemos.map((item) => ({ ...item, previewerProps: { ...item.previewerProps, expand: expandAll, // always override debug property, because dumi will hide debug demo in production debug: false, }, })); return (
} > {expandAll ? ( ) : ( )} } > {showDebug ? ( ) : ( )} {/* FIXME: find a new way instead of `key` to trigger re-render */}
); }; export default DemoWrapper;