Skip to content

Commit 2d667fd

Browse files
authored
Merge pull request #1 from MadinventorZero/sandbox
Completed Framework for Sandbox Render & State
2 parents 18302b9 + 203948e commit 2d667fd

File tree

5 files changed

+197
-59
lines changed

5 files changed

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

app/src/containers/MainContainer.tsx

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,46 @@
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+
// Caret Start
13+
const [state, dispatch] = useContext(StateContext);
14+
const componentsToRender = [];
15+
useEffect(() => {
16+
const childrenArray = state.components[0].children;
17+
console.log('Refrenced Children in State!!!', childrenArray);
18+
const codePreviewView = state.components[0].code;
19+
console.log('This is the framework for CodePreview', codePreviewView);
20+
let key = 0;
21+
for (const element of childrenArray) {
22+
if (element.name !== 'separator') {
23+
console.log('detail from children array', element);
24+
const elementType = element.name;
25+
const childId = element.childId;
26+
const elementStyle = element.style;
27+
const innerText = element.attributes.compText;
28+
if (elementType !== 'button') {
29+
componentsToRender.push(<Box component={elementType} key={key} id={childId}>{innerText}</Box>);
30+
} else componentsToRender.push(<Button key={key} id={childId} color={'primary'}>{innerText}</Button>);
31+
key += 1;
32+
}
33+
}
34+
}, [state.components]);
35+
// Caret End
36+
837
return (
938
<div className="main-container" style={style} >
1039
<div className="main">
1140
<CanvasContainer />
41+
{/* Caret Component Render */}
42+
{console.log('Completed Components to Render', componentsToRender)}
43+
<DemoRender demo={componentsToRender}/>
1244
</div>
1345
<BottomPanel />
1446
</div>

0 commit comments

Comments
 (0)