diff --git a/src/components/CodeBlock.vue b/src/components/CodeBlock.vue
index a34fc105..eaed2b35 100644
--- a/src/components/CodeBlock.vue
+++ b/src/components/CodeBlock.vue
@@ -22,6 +22,7 @@ import 'prismjs/components/prism-python'
import 'prismjs/components/prism-markdown'
import 'prismjs/themes/prism-tomorrow.css'
import { computed, ref, toRefs } from 'vue'
+import { msg } from '../store.js'
export default {
props: {
@@ -57,6 +58,9 @@ export default {
const copyCode = async () => {
try {
await navigator.clipboard.writeText(code.value)
+ msg.color = '#0000ff'
+ msg.showMsg = true
+ msg.content = 'Code has been copied to Clipboard.'
} catch (e) {
console.error(e)
}
diff --git a/src/components/Message.vue b/src/components/Message.vue
new file mode 100644
index 00000000..41124902
--- /dev/null
+++ b/src/components/Message.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/NavBar.vue b/src/components/NavBar.vue
index e1571819..22ff0996 100644
--- a/src/components/NavBar.vue
+++ b/src/components/NavBar.vue
@@ -63,7 +63,7 @@
>
-
🎉 Your Training Script Generated! 🎉
+
🎉 Your Training Script Has Been Generated! 🎉
Thanks for using Code-Generator! Feel free to reach out to us on
import { version } from '../../package.json'
-import { store } from '../store'
+import { store, msg } from '../store'
import { saveAs } from 'file-saver'
import JSZip from 'jszip'
import IconDiscord from './IconDiscord.vue'
@@ -101,13 +101,21 @@ export default {
const downloadProject = () => {
if (store.code && Object.keys(store.code).length) {
- for (const filename in store.code) {
- zip.file(filename, store.code[filename])
+ if (!store.config.output_dir) {
+ msg.showMsg = true
+ msg.content = `Output directory is required. Please input in Loggers tab.`
+ } else {
+ for (const filename in store.code) {
+ zip.file(filename, store.code[filename])
+ }
+ zip.generateAsync({ type: 'blob' }).then((content) => {
+ saveAs(content, `ignite-${store.config.template}.zip`)
+ })
+ showDownloadMsg.value = true
}
- zip.generateAsync({ type: 'blob' }).then((content) => {
- saveAs(content, `ignite-${store.config.template}.zip`)
- })
- showDownloadMsg.value = true
+ } else {
+ msg.showMsg = true
+ msg.content = 'Choose a template to download.'
}
}
return { version, downloadProject, showDownloadMsg, currentCommit }
diff --git a/src/components/PaneLeft.vue b/src/components/PaneLeft.vue
index 652d3759..b823f934 100644
--- a/src/components/PaneLeft.vue
+++ b/src/components/PaneLeft.vue
@@ -15,6 +15,7 @@
+
diff --git a/src/store.js b/src/store.js
index de03a2c9..a943ba3f 100644
--- a/src/store.js
+++ b/src/store.js
@@ -27,6 +27,13 @@ const files = {}
// filename to store user input config during development
export const __DEV_CONFIG_FILE__ = '__DEV_CONFIG__.json'
+// to track message box
+export const msg = reactive({
+ showMsg: false,
+ content: '',
+ color: '#ff0000'
+})
+
// main reactive object
// store.code - the final rendered code to be included in archive
// store.config - the internal config to track user input