import EditorWrap from '@/components/editor-wrap'; import HighlightCode from '@/components/highlight-code'; import { BulbOutlined } from '@ant-design/icons'; import { useIntl } from '@umijs/max'; import { Button, Modal } from 'antd'; import React, { useMemo, useState } from 'react'; type ViewModalProps = { title: string; open: boolean; viewCodeContent: { curlCode: string; pythonCode: string; nodeJsCode: string; }; onCancel: () => void; }; const langMap = { shell: 'bash', python: 'python', javascript: 'javascript' }; const langOptions = [ { label: 'Curl', value: langMap.shell }, { label: 'Python', value: langMap.python }, { label: 'Nodejs', value: langMap.javascript } ]; const ViewCodeModal: React.FC = (props) => { const { title, open, onCancel, viewCodeContent } = props || {}; const intl = useIntl(); const [lang, setLang] = useState(langMap.shell); const codeValue = useMemo(() => { if (lang === langMap.shell) { return viewCodeContent?.curlCode; } if (lang === langMap.javascript) { return viewCodeContent?.nodeJsCode; } if (lang === langMap.python) { return viewCodeContent?.pythonCode; } return ''; }, [lang, viewCodeContent]); const handleOnChangeLang = (value: string) => { setLang(value); }; const handleClose = () => { setLang(langMap.shell); onCancel(); }; return ( <>
{intl.formatMessage({ id: 'playground.viewcode.info' })}
{intl.formatMessage( { id: 'playground.viewcode.tips' }, { here: ( ) } )}
); }; export default React.memo(ViewCodeModal);