import React, { useRef, memo } from 'react'; import { Button, Input, Popover, Modal, Switch } from 'antd'; import { ArrowLeftOutlined, MobileOutlined, DownloadOutlined, CopyOutlined, DeleteOutlined, UndoOutlined, RedoOutlined, FileAddOutlined, } from '@ant-design/icons'; import { history } from 'umi'; import QRCode from 'qrcode.react'; import { saveAs } from 'file-saver'; import Zan from 'components/Zan'; import req from '@/utils/req'; import Code from '@/assets/code.png'; import styles from './index.less'; const { confirm } = Modal; const isDev = process.env.NODE_ENV === 'development'; interface HeaderComponentProps { pointData: any; location: any; clearData: any; undohandler: any; redohandler: any; toggleCollapsed: any; } const HeaderComponent = memo((props: HeaderComponentProps) => { const { pointData, location, clearData, undohandler, redohandler, toggleCollapsed } = props; const iptRef = useRef(null); const toPreview = () => { localStorage.setItem('pointData', JSON.stringify(pointData)); savePreview(); setTimeout(() => { window.open( isDev ? `/preview?tid=${props.location.query.tid}` : `/preview?tid=${props.location.query.tid}`, ); }, 600); }; const content = () => { const { tid } = location.query || ''; return ( ); }; const handleSaveTpl = () => { confirm({ title: '确定要保存吗?', content: (
模版名称:
访问链接:
), okText: '保存', cancelText: '取消', onOk() { let name = iptRef.current!.state.value; req.post('/visible/tpl/save', { name, tpl: pointData }).then(res => { console.log(res); }); }, onCancel() { console.log('Cancel'); }, }); }; const useTemplate = () => { Modal.info({ title: '该功能正在升级,可以关注下方公众号实时查看动态', content: (
趣谈前端
), okText: '客官知道啦', }); }; const downLoadJson = () => { const jsonStr = JSON.stringify(pointData); const blob = new Blob([jsonStr], { type: 'text/plain;charset=utf-8' }); saveAs(blob, 'template.json'); }; const toLogin = () => { const { tid } = props.location.query || ''; window.location.href = `/h5_plus/login?tid=${tid}`; }; const toBack = () => { history.push('/'); }; const newPage = () => { let prev = localStorage.getItem('myH5'); try { localStorage.setItem( 'myH5', JSON.stringify(prev ? [...Array.from(prev), pointData] : [pointData]), ); } catch (err) { console.error(err); } clearData(); }; const savePreview = () => { const { tid } = props.location.query || ''; req.post('/visible/preview', { tid, tpl: pointData }); }; const handleSaveCode = () => {}; return (
Dooring
); }); export default HeaderComponent;