import React, { useState, useEffect, useMemo, useContext } from 'react';
import { Slider, Result, Tabs, Alert } from 'antd';
import {
PieChartOutlined,
ExpandOutlined,
PlayCircleOutlined,
HighlightOutlined,
ReloadOutlined,
DoubleRightOutlined,
DoubleLeftOutlined,
} from '@ant-design/icons';
import TextLoop from 'react-text-loop';
import { connect } from 'dva';
import HeaderComponent from './components/Header';
import SourceBox from './SourceBox';
import TargetBox from './TargetBox';
import Calibration from 'components/Calibration';
import DynamicEngine, { componentsType } from 'components/DynamicEngine';
import FormEditor from 'components/PanelComponents/FormEditor';
import template1 from 'components/BasicShop/BasicComponents/template';
import template2 from 'components/BasicPcShop/BasicComponents/template';
import mediaTpl1 from 'components/BasicShop/MediaComponents/template';
import mediaTpl2 from 'components/BasicPcShop/MediaComponents/template';
import graphTpl1 from 'components/BasicShop/VisualComponents/template';
import graphTpl2 from 'components/BasicPcShop/VisualComponents/template';
import schema1 from 'components/BasicShop/schema';
import schema2 from 'components/BasicPcShop/schema';
import { ActionCreators } from 'redux-undo';
import { StateWithHistory } from 'redux-undo';
import styles from './index.less';
import { useGetBall } from 'react-draggable-ball';
import { dooringContext } from '@/layouts';
const { TabPane } = Tabs;
const Container = (props: {
history?: any;
location?: any;
pstate?: any;
cstate?: any;
dispatch?: any;
}) => {
const [scaleNum, setScale] = useState(1);
const [collapsed, setCollapsed] = useState(true);
const [rightColla, setRightColla] = useState(true);
const { pstate, cstate, dispatch } = props;
const pointData = pstate ? pstate.pointData : [];
const cpointData = cstate ? cstate.pointData : [];
const changeCollapse = useMemo(() => {
return (c: boolean) => {
setCollapsed(c);
};
}, []);
const changeRightColla = useMemo(() => {
return (c: boolean) => {
setRightColla(c);
};
}, []);
const context = useContext(dooringContext);
const curPoint = useMemo(() => {
if (context.theme === 'h5') {
return pstate ? pstate.curPoint : {};
} else {
return cstate ? cstate.curPoint : {};
}
}, [context.theme, cstate, pstate]);
const schema = useMemo(() => {
if (context.theme === 'h5') {
return schema1;
} else {
return schema2;
}
}, [context.theme]);
const template = useMemo(() => {
if (context.theme === 'h5') {
return template1;
} else {
return template2;
}
}, [context.theme]);
const mediaTpl = useMemo(() => {
if (context.theme === 'h5') {
return mediaTpl1;
} else {
return mediaTpl2;
}
}, [context.theme]);
const graphTpl = useMemo(() => {
if (context.theme === 'h5') {
return graphTpl1;
} else {
return graphTpl2;
}
}, [context.theme]);
// 指定画布的id
let canvasId = 'js_canvas';
const backSize = () => {
setScale(1);
};
const CpIcon = {
base: