three.cad/src/app.jsx

69 lines
1.6 KiB
React
Raw Normal View History

2021-03-26 17:25:28 +08:00
2021-03-30 13:13:13 +08:00
import React, { useEffect, useState } from 'react';
2021-03-27 03:18:11 +08:00
import './app.scss'
2021-03-26 17:25:28 +08:00
2021-03-28 20:00:31 +08:00
import { Provider, useDispatch, useSelector } from 'react-redux'
2021-03-31 07:20:24 +08:00
// import { sc } from './index'
2021-03-28 20:00:31 +08:00
2021-03-27 03:18:11 +08:00
export const Root = ({ store }) => (
2021-03-26 17:25:28 +08:00
<Provider store={store}>
2021-03-27 03:18:11 +08:00
<App></App>
2021-03-26 17:25:28 +08:00
</Provider>
);
2021-03-27 03:18:11 +08:00
2021-03-30 13:13:13 +08:00
2021-03-27 03:18:11 +08:00
const App = () => {
2021-03-28 20:00:31 +08:00
const dispatch = useDispatch()
2021-03-29 18:27:34 +08:00
const treeEntries = useSelector(state => state.treeEntries)
2021-03-30 13:13:13 +08:00
const activeSketch = useSelector(state => state.activeSketch)
// const [state, setState] = useState('x')
// useEffect(()=>{
// console.log('hereeee')
// },[state])
useEffect(() => {
if (!activeSketch) {
2021-03-31 07:20:24 +08:00
sc.canvas.addEventListener('pointermove', sc.onHover)
sc.canvas.addEventListener('pointerdown', sc.onPick)
return () => {
sc.canvas.removeEventListener('pointermove', sc.onHover)
sc.canvas.removeEventListener('pointerdown', sc.onPick)
}
2021-03-30 13:13:13 +08:00
}
}, [activeSketch])
2021-03-27 03:18:11 +08:00
return <>
2021-03-29 02:54:05 +08:00
<div className='buttons-group'>
2021-03-30 13:13:13 +08:00
{activeSketch ?
2021-04-01 08:04:14 +08:00
<button onClick={() => activeSketch.deactivate()}>
2021-03-30 13:13:13 +08:00
Exit sketch
</button> :
2021-03-31 07:20:24 +08:00
<button onClick={sc.addSketch}> addsketch </button>
2021-03-30 13:13:13 +08:00
}
2021-04-01 08:04:14 +08:00
<button onClick={() => sc.extrude(activeSketch)}> extrude </button>
2021-03-30 13:13:13 +08:00
{/* <button onClick={() => setState('')}> test </button> */}
2021-03-29 02:54:05 +08:00
</div>
2021-03-28 20:00:31 +08:00
<div className='feature-tree'>
2021-04-01 08:04:14 +08:00
{ treeEntries.allIds.map((entId, idx) => (
2021-03-29 18:27:34 +08:00
<div key={idx}
2021-03-30 13:13:13 +08:00
onClick={() => {
if (activeSketch) {
2021-04-01 08:04:14 +08:00
activeSketch.deactivate()
2021-03-30 13:13:13 +08:00
}
2021-04-01 08:04:14 +08:00
treeEntries.byId[entId].activate()
2021-03-30 13:13:13 +08:00
}
}
2021-03-29 18:27:34 +08:00
>{entId}</div>
2021-03-28 20:00:31 +08:00
))}
</div>
2021-03-27 03:18:11 +08:00
</>
2021-03-28 20:00:31 +08:00
}