Skip to content

Commit f95d7b9

Browse files
committed
added classArr
1 parent 1f3c3eb commit f95d7b9

File tree

7 files changed

+151
-172
lines changed

7 files changed

+151
-172
lines changed

src/components/right-sidebar/CodeSnippet.vue

Lines changed: 48 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,8 @@ Description:
1212
Select a component
1313
</div>
1414
<div v-else>{{ `${this.activeComponent}.vue` }}</div>
15-
<prism-editor
16-
v-model="code"
17-
:highlight="highlighter"
18-
line-numbers
19-
class="my-editor"
20-
readonly
21-
/>
22-
</div>
15+
<prism-editor v-model="code" :highlight="highlighter" line-numbers class="my-editor" readonly />
16+
</div>
2317
</template>
2418

2519
<script>
@@ -28,6 +22,7 @@ import { mapState } from "vuex";
2822
import { PrismEditor } from "vue-prism-editor";
2923
import "vue-prism-editor/dist/prismeditor.min.css";
3024
import { highlight, languages } from "prismjs/components/prism-core";
25+
import styleClassMap from '../../store/state/styleClassMap'
3126
import "prismjs/components/prism-clike";
3227
import "prismjs/components/prism-javascript";
3328
import "prismjs/themes/prism-tomorrow.css"; // import syntax highlighting styles
@@ -44,18 +39,19 @@ export default {
4439
PrismEditor,
4540
},
4641
computed: {
42+
//add
4743
// needs access to current component aka activeComponent
4844
...mapState(["componentMap", "activeComponent", "activeComponentObj", "exportAsTypescript"]),
4945
},
5046
methods: {
51-
snippetInvoke(){
52-
if (this.activeComponent !== ''){
47+
snippetInvoke() {
48+
if (this.activeComponent !== '') {
5349
this.code = this.createCodeSnippet(
5450
this.componentMap[this.activeComponent].componentName,
5551
this.componentMap[this.activeComponent].children
5652
)
57-
} else {
58-
this.code = 'Your component boilerplate will be displayed here.'
53+
} else {
54+
this.code = 'Your component boilerplate will be displayed here.'
5955
}
6056
},
6157
//highlighter does not work: OverVue 6.0;
@@ -95,32 +91,16 @@ export default {
9591
"list-ul": ["<ul", "</ul>"],
9692
input: ["<input", ""], //single
9793
navbar: ["<nav", "</nav>"],
98-
header:["<header","</header>"],
99-
footer:["<footer", "</footer>"],
94+
header: ["<header", "</header>"],
95+
footer: ["<footer", "</footer>"],
10096
meta: ["<meta", "</meta>"],
101-
h1:["<h1", "</h1>"],
102-
h2:["<h2", "</h2>"],
103-
h3:["<h3", "</h3>"],
104-
h4:["<h4", "</h4>"],
105-
h5:["<h5", "</h5>"],
106-
h6:["<h6", "</h6>"],
97+
h1: ["<h1", "</h1>"],
98+
h2: ["<h2", "</h2>"],
99+
h3: ["<h3", "</h3>"],
100+
h4: ["<h4", "</h4>"],
101+
h5: ["<h5", "</h5>"],
102+
h6: ["<h6", "</h6>"],
107103
};
108-
//test//
109-
// function writeClass(componentName) {
110-
// if (this.componentMap[componentName]?.classList?.length > 0) {
111-
// let commentStr = '<!--'
112-
// this.componentMap[componentName].classList.forEach((el) => {
113-
// commentStr += "\n"
114-
// commentStr += el;
115-
// })
116-
// commentStr += '\n-->\n\n'
117-
// return commentStr;
118-
// } else {
119-
// return ''
120-
// }
121-
// };
122-
// Helper function that recursively iterates through the given html element's children and their children's children.
123-
// also adds proper indentation to code snippet
124104
function writeNested(childrenArray, indent) {
125105
if (!childrenArray.length) {
126106
return "";
@@ -134,13 +114,13 @@ export default {
134114
nestedString += `<${child}/>\n`;
135115
} else {
136116
nestedString += htmlElementMap[child.text][0];
137-
if(child.class !== "") {
138-
nestedString += " " + "class = " + `"${el.class}"`;
139-
}
140-
if(child.text === "img" || child.text === "input" || child.text === "link") {
141-
nestedString += "/>";
142-
} else {nestedString += ">";}
143-
117+
if (child.class !== "") {
118+
nestedString += " " + "class = " + `"${el.class}"`;
119+
}
120+
if (child.text === "img" || child.text === "input" || child.text === "link") {
121+
nestedString += "/>";
122+
} else { nestedString += ">"; }
123+
144124
if (child.children.length) {
145125
nestedString += "\n";
146126
nestedString += writeNested(child.children, indented);
@@ -166,12 +146,12 @@ export default {
166146
outputStr += ` <${el}/>\n`;
167147
} else {
168148
outputStr += ` `;
169-
outputStr += htmlElementMap[el.text][0]
170-
//if conditional to check class
171-
if(el.class !== "") {
172-
outputStr += " " + "class = " + `"${el.class}"`;
173-
}
174-
outputStr += ">";
149+
outputStr += htmlElementMap[el.text][0]
150+
//if conditional to check class
151+
if (el.class !== "") {
152+
outputStr += " " + "class = " + `"${el.class}"`;
153+
}
154+
outputStr += ">";
175155
if (el.children.length) {
176156
outputStr += "\n";
177157
outputStr += writeNested(el.children, ` `);
@@ -204,7 +184,7 @@ export default {
204184
imports += ' } from "vuex";\n';
205185
}
206186
207-
// if Typescript toggle is on, import defineComponent
187+
// if Typescript toggle is on, import defineComponent
208188
if (this.exportAsTypescript === "on") {
209189
imports += 'import { defineComponent } from "vue";\n';
210190
}
@@ -255,6 +235,19 @@ export default {
255235
methods += "\n ]),\n";
256236
methods += " },\n";
257237
}
238+
//creating a styleString too add to style scoped style
239+
let classArr = this.componentMap[componentName].htmlList;
240+
console.log('thisone', classArr);
241+
const styleStr = ' ';
242+
for (const hmtl of classArr) {
243+
if (!html.text) return;
244+
if (html.class) {
245+
styleStr += `.${html.class}{\n}`
246+
}
247+
//left off here: think there is an issue to render this information::::::::
248+
return styleStr;
249+
}
250+
258251
259252
// concat all code within script tags
260253
// if exportAsTypescript is on, out should be <script lang="ts">
@@ -276,28 +269,28 @@ export default {
276269
output += "});\n<\/script>\n\n<style scoped>\n</style>"
277270
278271
} else {
279-
output += "};\n<\/script>\n\n<style scoped>\n</style>"
272+
output += `};\n<\/script>\n\n<style scoped>\n${styleStr}</style>`
280273
}
281-
return output;
274+
return output
282275
},
283276
},
284277
watch: {
285278
// watches activeComponentObj for changes to make it reactive upon mutation
286279
// // // watches componentMap for changes to make it reactive upon mutation
287280
activeComponent: {
288-
handler () {
281+
handler() {
289282
this.snippetInvoke();
290283
},
291284
deep: true
292285
},
293286
componentMap: {
294-
handler () {
287+
handler() {
295288
this.snippetInvoke();
296289
},
297290
deep: true
298291
},
299292
exportAsTypescript: {
300-
handler () {
293+
handler() {
301294
this.snippetInvoke();
302295
},
303296
}

0 commit comments

Comments
 (0)