From dff3fe6bd2722b36bd23e29dcca21abb12a67aec Mon Sep 17 00:00:00 2001 From: Jacek Pietal Date: Mon, 24 Jun 2019 20:11:12 +0200 Subject: [PATCH 01/10] split header into vue components + immense update to gfx --- index.ejs | 1 + src/components/App.vue | 257 +++++++++---- src/components/ConsolePan.vue | 140 ++++---- src/components/HomeHeader.vue | 440 +++-------------------- src/components/OutputPan.vue | 65 ++-- src/components/header/AddBoilerplate.vue | 41 +++ src/components/header/AddLibrary.vue | 49 +++ src/components/header/AutorunButton.vue | 28 ++ src/components/header/PanToggles.vue | 62 ++++ src/components/header/RunButton.vue | 49 +++ src/components/header/SaveGist.vue | 103 ++++++ src/components/header/UploadOptions.vue | 206 +++++++++++ src/views/EditorPage.vue | 133 +++---- 13 files changed, 921 insertions(+), 653 deletions(-) create mode 100644 src/components/header/AddBoilerplate.vue create mode 100644 src/components/header/AddLibrary.vue create mode 100644 src/components/header/AutorunButton.vue create mode 100644 src/components/header/PanToggles.vue create mode 100644 src/components/header/RunButton.vue create mode 100644 src/components/header/SaveGist.vue create mode 100644 src/components/header/UploadOptions.vue diff --git a/index.ejs b/index.ejs index df82a39..36a3e09 100644 --- a/index.ejs +++ b/index.ejs @@ -65,6 +65,7 @@ } // Not in iframe if (window.self === window.top) { + document.querySelector(HW_config.selector).style.display = 'inline-block' var headwayScript = document.createElement('script') headwayScript.src = 'https://cdn.headwayapp.co/widget.js' headwayScript.async = true diff --git a/src/components/App.vue b/src/components/App.vue index 8c6d523..eb8f49b 100644 --- a/src/components/App.vue +++ b/src/components/App.vue @@ -1,13 +1,13 @@ @@ -15,71 +15,188 @@ - diff --git a/src/components/ConsolePan.vue b/src/components/ConsolePan.vue index d9df33b..b4bb593 100644 --- a/src/components/ConsolePan.vue +++ b/src/components/ConsolePan.vue @@ -3,20 +3,11 @@ class="console-pan" :class="{'active-pan': isActivePan}" @click="setActivePan('console')" - :style="style"> + :style="style" + >
- - Console - - - Clear - + Console + Clear
-
+ v-for="(log, index) in logs" + >
- + diff --git a/src/components/HomeHeader.vue b/src/components/HomeHeader.vue index 05246ef..7ae1654 100644 --- a/src/components/HomeHeader.vue +++ b/src/components/HomeHeader.vue @@ -1,407 +1,57 @@ diff --git a/src/components/OutputPan.vue b/src/components/OutputPan.vue index 1b6cf75..023c54e 100644 --- a/src/components/OutputPan.vue +++ b/src/components/OutputPan.vue @@ -3,11 +3,9 @@ class="output-pan" :class="{ 'active-pan': isActivePan }" @click="setActivePan('output')" - :style="style"> - -
- Output -
+ :style="style" + > +
Output
@@ -25,7 +23,6 @@ import Event from '@/utils/event' import panPosition from '@/utils/pan-position' import getScripts from '@/utils/get-scripts' import proxyConsole from '!raw-loader!babel-loader?presets[]=babili&-babelrc!buble-loader!@/utils/proxy-console' -import SvgIcon from './SvgIcon.vue' const sandboxAttributes = [ 'allow-modals', @@ -90,10 +87,7 @@ export default { 'githubToken', 'iframeStatus' ]), - ...mapGetters([ - 'isLoggedIn', - 'canUpdateGist' - ]), + ...mapGetters(['isLoggedIn', 'canUpdateGist']), isActivePan() { return this.activePan === 'output' } @@ -165,19 +159,18 @@ export default { try { await Promise.all([ - transform.js(this.js) + transform + .js(this.js) .then(code => getScripts(code, scripts)) .then(code => { js = code }), - transform.html(this.html) - .then(code => { - html = code - }), - transform.css(this.css) - .then(code => { - css = code - }) + transform.html(this.html).then(code => { + html = code + }), + transform.css(this.css).then(code => { + css = code + }) ]) js = js.replace(/<\/script>/, '<\\/script>') @@ -217,7 +210,8 @@ export default { await this.transform(false) const headStyle = createElement('style')(css) - const codePanRuntime = createElement('script')(` + const codePanRuntime = + createElement('script')(` window.process = window.process || { env: { NODE_ENV: 'development' } } `) + scripts @@ -232,9 +226,7 @@ export default { createElement('script')(proxyConsole) const head = headStyle + codePanRuntime - const body = - html + - createElement('script')(js) + const body = html + createElement('script')(js) this.iframe.setHTML({ head, @@ -268,9 +260,7 @@ export default { } const shouldUpdateGist = this.canUpdateGist && !saveNew const url = `https://api.github.com/gists${ - shouldUpdateGist ? - `/${this.$route.params.gist}` : - '' + shouldUpdateGist ? `/${this.$route.params.gist}` : '' }` const method = shouldUpdateGist ? 'PATCH' : 'POST' const { data } = await axios(url, { @@ -309,22 +299,23 @@ export default { } } } - }, - components: { - SvgIcon } } diff --git a/src/components/header/AddBoilerplate.vue b/src/components/header/AddBoilerplate.vue new file mode 100644 index 0000000..ea4f720 --- /dev/null +++ b/src/components/header/AddBoilerplate.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/components/header/AddLibrary.vue b/src/components/header/AddLibrary.vue new file mode 100644 index 0000000..9ae2261 --- /dev/null +++ b/src/components/header/AddLibrary.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/components/header/AutorunButton.vue b/src/components/header/AutorunButton.vue new file mode 100644 index 0000000..d1734a3 --- /dev/null +++ b/src/components/header/AutorunButton.vue @@ -0,0 +1,28 @@ + + + diff --git a/src/components/header/PanToggles.vue b/src/components/header/PanToggles.vue new file mode 100644 index 0000000..6d4d3a7 --- /dev/null +++ b/src/components/header/PanToggles.vue @@ -0,0 +1,62 @@ + + + + + \ No newline at end of file diff --git a/src/components/header/RunButton.vue b/src/components/header/RunButton.vue new file mode 100644 index 0000000..b54f3ea --- /dev/null +++ b/src/components/header/RunButton.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/components/header/SaveGist.vue b/src/components/header/SaveGist.vue new file mode 100644 index 0000000..598bfa1 --- /dev/null +++ b/src/components/header/SaveGist.vue @@ -0,0 +1,103 @@ + + + diff --git a/src/components/header/UploadOptions.vue b/src/components/header/UploadOptions.vue new file mode 100644 index 0000000..3ca231a --- /dev/null +++ b/src/components/header/UploadOptions.vue @@ -0,0 +1,206 @@ + + + + + + diff --git a/src/views/EditorPage.vue b/src/views/EditorPage.vue index d65102a..39712a2 100644 --- a/src/views/EditorPage.vue +++ b/src/views/EditorPage.vue @@ -1,37 +1,37 @@