Skip to content

Commit 790750f

Browse files
Fixed issue when first state of current component deleted and indentation problems
Co-authored-by: Ron Fu
1 parent 629e217 commit 790750f

File tree

2 files changed

+33
-53
lines changed

2 files changed

+33
-53
lines changed

app/src/containers/CustomizationPanel.tsx

Lines changed: 20 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -212,61 +212,41 @@ const CustomizationPanel = ({ isThemeLight }): JSX.Element => {
212212
const providerComponent = state.components[componentProviderId - 1];
213213
const providerStates = providerComponent.stateProps;
214214
const newInput = providerStates[statePropsId - 1].value;
215+
let newContextObj = {...currentComponent.useContext};
215216

216-
// states providerComponent
217-
// adding new state into provideComponent
218-
// currComponent = canvas focus component
219-
// currComponent = state.components[componentProviderId - 1]; {1 : {Set, compLink, compText}}
220-
// Our set holds the state row ids of that component
221-
222-
223-
// console.log("state-components", JSON.parse(JSON.stringify(state.components)));
224-
// console.log("current-component", JSON.parse(JSON.stringify(currentComponent)));
217+
if(!newContextObj) {
218+
newContextObj = {};
219+
}
225220

226-
if (attributeName === 'compText') {
227-
let newContextObj = {...currentComponent.useContext};
228-
if(!newContextObj) {
229-
newContextObj = {};
230-
}
221+
if (!newContextObj[componentProviderId]) {
222+
newContextObj[componentProviderId] = {statesFromProvider : new Set()};
223+
}
231224

232-
if (!newContextObj[componentProviderId]) {
233-
newContextObj[componentProviderId] = {statesFromProvider : new Set()};
234-
}
225+
newContextObj[componentProviderId].statesFromProvider.add(statePropsId);
235226

227+
if (attributeName === 'compText') {
236228
newContextObj[componentProviderId].compText = statePropsId;
237-
newContextObj[componentProviderId].statesFromProvider.add(statePropsId);
229+
238230
setCompText(newInput);
239-
// setUseContextObj(newContextObj);
240-
241231
dispatch({
242232
type: 'UPDATE USE CONTEXT',
243233
payload: { useContextObj: newContextObj}
244-
})
234+
});
235+
// setUseContextObj(newContextObj);
245236
}
237+
246238
if (attributeName === 'compLink') {
247-
const newContextObj = useContextObj;
248-
if (!newContextObj[componentProviderId]) {
249-
newContextObj[componentProviderId] = {statesFromProvider : new Set()};
250-
}
251-
newContextObj[componentProviderId].compLink = statePropsId;
252-
newContextObj[componentProviderId].statesFromProvider.add(statePropsId);
253-
239+
newContextObj[componentProviderId].compLink = statePropsId;
240+
254241
setCompLink(newInput);
255-
setUseContextObj(newContextObj);
242+
dispatch({
243+
type: 'UPDATE USE CONTEXT',
244+
payload: { useContextObj: newContextObj}
245+
});
246+
// setUseContextObj(newContextObj);
256247
}
257-
258-
259-
// TODO: set something to signify that state was used
260-
// so it can be handled in generateCode
261-
262-
// update use context object
263-
264248
}
265249

266-
// useEffect(() => {
267-
// console.log(useContextObj);
268-
// }, [useContextObj]);
269-
270250
// dispatch to 'UPDATE CSS' called when save button is clicked,
271251
// passing in style object constructed from all changed input values
272252
const handleSave = (): Object => {

app/src/helperFunctions/generateCode.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -244,30 +244,30 @@ const generateUnformattedCode = (
244244
}
245245

246246
let importContext = '';
247-
//{1: {statesFromProvider: new Set}, 2: ..., 3:...}
248247
if(currComponent.useContext) {
249248
for (const providerId of Object.keys(currComponent.useContext)) {
250249
const providerComponent = components[parseInt(providerId) - 1];
251-
importContext += `import ${providerComponent.name}Context from './${providerComponent.name}.tsx'\n`;
250+
importContext += `import ${providerComponent.name}Context from './${providerComponent.name}.tsx'\n \t\t` ;
252251
}
253252
}
254253
// check for context
255254
if (currComponent.useContext) {
256255
for (const providerId of Object.keys(currComponent.useContext)) {
257256
const statesFromProvider = currComponent.useContext[parseInt(providerId)].statesFromProvider; //{1: {Set, compLink, compText}, 2 : {}...}
258257
const providerComponent = components[parseInt(providerId) - 1];
259-
providers += 'const ' + providerComponent.name.toLowerCase() + 'Context = useContext(' + providerComponent.name + 'Context);\n';
260-
console.log('statesFromProviders: ', statesFromProvider);
261-
console.log('providerComponent: ', providerComponent);
262-
for (const stateId of statesFromProvider.values()) {
263-
context +=
258+
providers += 'const ' + providerComponent.name.toLowerCase() + 'Context = useContext(' + providerComponent.name + 'Context);\n \t\t' ;
259+
260+
for (let i = 0; i < providerComponent.stateProps.length; i++) {
261+
if(statesFromProvider.has(providerComponent.stateProps[i].id)) {
262+
context +=
264263
'const ' +
265-
providerComponent.stateProps[stateId - 1].key +
266-
' = ' +
264+
providerComponent.stateProps[i].key +
265+
'Value = ' +
267266
providerComponent.name.toLowerCase() +
268267
'Context.' +
269-
providerComponent.stateProps[stateId - 1].key +
270-
';\n';
268+
providerComponent.stateProps[i].key +
269+
'; \n \t\t';
270+
}
271271
}
272272
}
273273
}
@@ -293,15 +293,15 @@ const generateUnformattedCode = (
293293
? ` return (
294294
<${currComponent.name}Context.Provider value="">
295295
<div className="${currComponent.name}" ${formatStyles(currComponent)}>
296-
${writeNestedElements(enrichedChildren)}
296+
\t${writeNestedElements(enrichedChildren)}
297297
</div>
298298
</${currComponent.name}Context.Provider>
299299
);`
300300
: ` return (
301301
<${currComponent.name}Context.Provider value="">
302302
<Router>
303303
<div className="${currComponent.name}" ${formatStyles(currComponent)}>
304-
${` ` + writeNestedElements(enrichedChildren)}
304+
\t${writeNestedElements(enrichedChildren)}
305305
</div>
306306
</Router>
307307
</${currComponent.name}Context.Provider>

0 commit comments

Comments
 (0)