Skip to content

Commit c6be746

Browse files
authored
Merge pull request #16 from MadinventorZero/styleandlink
Styleandlink
2 parents d24f479 + 5e40db5 commit c6be746

File tree

4 files changed

+42
-5
lines changed

4 files changed

+42
-5
lines changed

app/src/components/main/DemoRender.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,14 @@ const DemoRender = (props): JSX.Element => {
2727
const elementStyle = element.style;
2828
const innerText = element.attributes.compText;
2929
const classRender = element.attributes.cssClasses;
30+
const activeLink = element.attributes.compLink;
3031
let renderedChildren;
3132
if (elementType !== 'input' && elementType !== 'img' && element.children.length > 0) {
3233
renderedChildren = componentBuilder(element.children);
3334
}
34-
if (elementType === 'input' || elementType === 'img') componentsToRender.push(<Box component={elementType} className={classRender} style={elementStyle} key={key} id={childId}></Box>);
35+
if (elementType === 'input') componentsToRender.push(<Box component={elementType} className={classRender} style={elementStyle} key={key} id={childId}></Box>);
36+
else if (elementType === 'img') componentsToRender.push(<Box component={elementType} src={activeLink} className={classRender} style={elementStyle} key={key} id={childId}></Box>);
37+
else if (elementType === 'a') componentsToRender.push(<Box component={elementType} href={activeLink} className={classRender} style={elementStyle} key={key} id={childId}>{innerText}</Box>);
3538
else componentsToRender.push(<Box component={elementType} className={classRender} style={elementStyle} key={key} id={childId}>{innerText}{renderedChildren}</Box>);
3639
key += 1;
3740
}

app/src/components/main/DirectChildHTMLNestable.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ const snapShotFunc = () => {
7070
// updates state with new instance
7171
// if item dropped is going to be a new instance (i.e. it came from the left panel), then create a new child component
7272
if (item.newInstance) {
73-
console.log("Child added directly to an existing element")
7473
dispatch({
7574
type: 'ADD CHILD',
7675
payload: {

app/src/containers/RightContainer.tsx

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ const RightContainer = ({ isThemeLight }): JSX.Element => {
4040
const [BGColor, setBGColor] = useState('');
4141
// Caret Start
4242
const [compText, setCompText] = useState('');
43+
const [compLink, setCompLink] = useState('');
4344
const [cssClasses, setCssClasses] = useState('');
4445
// Caret End
4546
const [compWidth, setCompWidth] = useState('');
@@ -58,10 +59,10 @@ const RightContainer = ({ isThemeLight }): JSX.Element => {
5859
if (configTarget.child && element.childId === configTarget.child.id) {
5960
attributes = element.attributes;
6061
setCompText(attributes.text ? attributes.text : '');
62+
setCompLink(attributes.link ? attributes.link : '');
6163
setCssClasses(attributes.cssClasses ? attributes.cssClasses : '');
6264
}
6365
}
64-
console.log('Canvas Element Detail: ', configTarget.child);
6566
// Caret End
6667
const style = configTarget.child
6768
? configTarget.child.style
@@ -111,6 +112,9 @@ const RightContainer = ({ isThemeLight }): JSX.Element => {
111112
case 'compText':
112113
setCompText(inputVal);
113114
break;
115+
case 'compLink':
116+
setCompLink(inputVal);
117+
break;
114118
case 'cssClasses':
115119
setCssClasses(inputVal);
116120
break;
@@ -220,6 +224,7 @@ const RightContainer = ({ isThemeLight }): JSX.Element => {
220224
// Caret
221225
const attributesObj: any = {};
222226
if (compText !== '') attributesObj.compText = compText;
227+
if (compLink !== '') attributesObj.compLink = compLink;
223228
if (cssClasses !== '') attributesObj.cssClasses = cssClasses;
224229

225230
dispatch({
@@ -552,6 +557,34 @@ const RightContainer = ({ isThemeLight }): JSX.Element => {
552557
</FormControl>
553558
</div>
554559
</div>
560+
<div className={classes.configRow}>
561+
<div
562+
className={
563+
isThemeLight
564+
? `${classes.configType} ${classes.lightThemeFontColor}`
565+
: `${classes.configType} ${classes.darkThemeFontColor}`
566+
}
567+
>
568+
<h3>Link:</h3>
569+
</div>
570+
<div className={classes.configValue}>
571+
<FormControl variant="filled" className={classes.formControl}>
572+
<TextField
573+
variant="filled"
574+
name="compLink"
575+
className={classes.select}
576+
inputProps={{
577+
className: isThemeLight
578+
? `${classes.selectInput} ${classes.lightThemeFontColor}`
579+
: `${classes.selectInput} ${classes.darkThemeFontColor}`
580+
}}
581+
value={compLink}
582+
onChange={handleChange}
583+
placeholder="Text"
584+
/>
585+
</FormControl>
586+
</div>
587+
</div>
555588
<div className={classes.configRow}>
556589
<div
557590
className={

app/src/helperFunctions/generateCode.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,9 @@ const generateUnformattedCode = (
101101
// function to dynamically generate a complete html (& also other library type) elements
102102
const elementGenerator = (childElement: object, level: number = 2) => {
103103
let innerText = '';
104+
let activeLink = '';
104105
if (childElement.attributes && childElement.attributes.compText) innerText = childElement.attributes.compText;
106+
if (childElement.attributes && childElement.attributes.compLink) activeLink = childElement.attributes.compLink;
105107

106108
const tabSpacer = (level: number) => {
107109
let tabs = ''
@@ -122,9 +124,9 @@ const generateUnformattedCode = (
122124
childElement.tag === 'li';
123125

124126
if (childElement.tag === 'img') {
125-
return `${levelSpacer(level, 5)}<${childElement.tag} src="" ${elementTagDetails(childElement)}/>${levelSpacer(2, (3 + level))}`;
127+
return `${levelSpacer(level, 5)}<${childElement.tag} src=${activeLink} ${elementTagDetails(childElement)}/>${levelSpacer(2, (3 + level))}`;
126128
} else if (childElement.tag === 'a') {
127-
return `${levelSpacer(level, 5)}<${childElement.tag} href=""${elementTagDetails(childElement)}>${innerText}</${childElement.tag}>${levelSpacer(2, (3 + level))}`;
129+
return `${levelSpacer(level, 5)}<${childElement.tag} href=${activeLink} ${elementTagDetails(childElement)}>${innerText}</${childElement.tag}>${levelSpacer(2, (3 + level))}`;
128130
} else if (childElement.tag === 'input') {
129131
return `${levelSpacer(level, 5)}<${childElement.tag}${elementTagDetails(childElement)}></${childElement.tag}>${levelSpacer(2, (3 + level))}`;
130132
} else if (nestable) {

0 commit comments

Comments
 (0)