Skip to content

Commit ef34850

Browse files
MadinventorZerojonocrbuddhajjigaexkevinparkwilliamdyoon
committed
Completed Framework for Sandbox Render & State
Co-authored-by: jonocr <[email protected]> Co-authored-by: buddhajjigae <[email protected]> Co-authored-by: xkevinpark <[email protected]> Co-authored-by: williamdyoon <[email protected]>
1 parent 18302b9 commit ef34850

File tree

5 files changed

+180
-59
lines changed

5 files changed

+180
-59
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import React, {
2+
useState, useCallback, useContext, useEffect,
3+
} from 'react';
4+
5+
const DemoRender = (props): JSX.Element => {
6+
const [components, setComponents] = useState([]);
7+
const demoContainerStyle = {
8+
width: '100%',
9+
backgroundColor: 'lightgrey',
10+
border: '2px Solid grey',
11+
};
12+
13+
useEffect(() => {
14+
console.log('props', props.demo);
15+
setComponents(props.demo);
16+
}, [props.demo]);
17+
return (
18+
<div id={'renderFocus'} style={demoContainerStyle}>
19+
{console.log('Props Boxes has reached DemoContainer', props.demo)}
20+
{components.map((component, index) => {
21+
console.log('Found a component', component);
22+
return component;
23+
})}
24+
</div>
25+
);
26+
};
27+
28+
export default DemoRender;

app/src/containers/MainContainer.tsx

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,43 @@
1-
import React, { useContext } from 'react';
1+
import React, { useState, useContext, useEffect } from 'react';
2+
import Button from '@material-ui/core/Button';
3+
import Box from '@material-ui/core/Box';
24
import BottomPanel from '../components/bottom/BottomPanel';
35
import CanvasContainer from '../components/main/CanvasContainer';
46
import { styleContext } from './AppContainer';
7+
import StateContext from '../context/context';
8+
import DemoRender from '../components/main/DemoRender';
59

610
const MainContainer = () => {
711
const { style } = useContext(styleContext);
12+
const [state, dispatch] = useContext(StateContext);
13+
const componentsToRender = [];
14+
useEffect(() => {
15+
const childrenArray = state.components[0].children;
16+
console.log('Refrenced Children in State!!!', childrenArray);
17+
const codePreviewView = state.components[0].code;
18+
console.log('This is the framework for CodePreview', codePreviewView);
19+
let key = 0;
20+
for (const element of childrenArray) {
21+
if (element.name !== 'separator') {
22+
console.log('detail from children array', element);
23+
const elementType = element.name;
24+
const childId = element.childId;
25+
const elementStyle = element.style;
26+
const innerText = element.attributes.compText;
27+
if (elementType !== 'button') {
28+
componentsToRender.push(<Box component={elementType} key={key} id={childId}>{innerText}</Box>);
29+
} else componentsToRender.push(<Button key={key} id={childId} color={'primary'}>{innerText}</Button>);
30+
key += 1;
31+
}
32+
}
33+
}, [state.components]);
34+
835
return (
936
<div className="main-container" style={style} >
1037
<div className="main">
1138
<CanvasContainer />
39+
{console.log('Completed Components to Render', componentsToRender)}
40+
<DemoRender demo={componentsToRender}/>
1241
</div>
1342
<BottomPanel />
1443
</div>

0 commit comments

Comments
 (0)