Skip to content

Commit ccc9ed3

Browse files
Merge pull request #148 from open-source-labs/compositionApi
Composition API
2 parents f376278 + c822f64 commit ccc9ed3

26 files changed

+417
-477
lines changed

package-lock.json

Lines changed: 30 additions & 63 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src-electron/electron-main.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,18 +111,14 @@ function sendTokenRequest() {
111111

112112
// Listens for response from token request
113113
request.on("response", (response) => {
114-
// logEverywhere("request.on response received");
115114
response.on("end", () => {
116-
// logEverywhere("Response ended ");
117115
});
118116
response.on("data", (data) => {
119117
const decoded = JSON.parse(data.toString());
120118
if (decoded.error) {
121119
return slackErrorHandler(decoded.error);
122120
}
123-
// console.log('Is there an error? ', !!decoded.error, 'if true, this shouldnt be logging')
124121
mainWindow.webContents.send("tokenReceived", decoded);
125-
// getSlackUser(decoded.access_token, decoded.authed_user.id)
126122
});
127123
});
128124
request.end();
@@ -143,27 +139,22 @@ function getSlackUser(token, userId) {
143139
});
144140
request.on("response", (response) => {
145141
response.on("end", () => {
146-
// logEverywhere('User data recieved')
147142
});
148143
response.on("data", (data) => {
149144
const decoded = JSON.parse(data.toString());
150145
if (decoded.error) {
151146
return slackErrorHandler(decoded.error);
152147
}
153-
// logEverywhere('slackUser decoded data in getSlackUser' + decoded)
154148
mainWindow.webContents.send("slackUser", decoded);
155149
});
156150
});
157151
request.end();
158152
}
159153

160154
function setOauthListener() {
161-
// logEverywhere(`process.env.SLACK_CLIENT_ID in electron-main: ${process.env.SLACK_CLIENT_ID}`);
162-
// logEverywhere(`process.env.SLACK_CLIENT_SECRET in electron-main: ${process.env.SLACK_CLIENT_SECRET}`);
163155

164156
if (process.env.PROD) {
165157
return deeplink.on("received", (link) => {
166-
// logEverywhere(`auth worked here link: ${link}`);
167158
// Extracts Slack authorization code from deep link
168159
authCode = link.split("=")[1];
169160
sendTokenRequest();

src/components/ComponentDisplay.vue

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
<q-icon color="primary" name="edit_note" />
8181
</q-item-section>
8282
</q-item>
83-
<q-item clickable v-ripple v-close-popup @click="handleExportComponent">
83+
<q-item clickable v-ripple v-close-popup @click="useExportComponentBound">
8484
<q-item-section>Export Component</q-item-section>
8585
<q-item-section avatar>
8686
<q-icon color="primary" name="upload" />
@@ -156,12 +156,16 @@
156156
</div>
157157
</template>
158158

159+
<script setup>
160+
import { useExportComponent } from "./composables/useExportComponent.js";
161+
</script>
162+
159163
<script>
160164
import { mapState, mapActions } from "vuex";
161165
import VueDraggableResizable from "vue-draggable-resizable/src/components/vue-draggable-resizable.vue";
162166
import VueMultiselect from "vue-multiselect";
163167
import "vue-draggable-resizable/src/components/vue-draggable-resizable.css";
164-
import handleExportComponentMixin from "./ExportComponentMixin.vue";
168+
165169
const { fs, ipcRenderer } = window;
166170
167171
const cloneDeep = require("lodash.clonedeep");
@@ -172,7 +176,6 @@ export default {
172176
VueDraggableResizable,
173177
VueMultiselect,
174178
},
175-
mixins: [handleExportComponentMixin],
176179
data() {
177180
return {
178181
modalOpen: false,
@@ -324,6 +327,9 @@ export default {
324327
"deleteActiveComponentNote",
325328
"openNoteModal",
326329
]),
330+
useExportComponentBound(){
331+
useExportComponent.bind(this)();
332+
},
327333
// records component's initial position in case of drag
328334
recordInitialPosition: function (e) {
329335
if (this.activeComponent !== e.target.id) {

src/components/ExportComponentMixin.vue

Lines changed: 0 additions & 232 deletions
This file was deleted.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
export function useCreateComponent(importObj) {
2+
const createComponent = (importObj) => {
3+
let imported = false;
4+
if (importObj.hasOwnProperty('componentName')){
5+
imported = true;
6+
//Check if state and actions on import exist in the store. If not, add them.
7+
for (let i = 0; i < importObj.actions.length; i++){
8+
if (!this.userActions.includes(importObj.actions[i])){
9+
this.createAction(importObj.actions[i])
10+
}
11+
}
12+
for (let i = 0; i < importObj.state.length; i++){
13+
if (!this.userState.includes(importObj.state[i])){
14+
this.createState(importObj.state[i])
15+
}
16+
}
17+
for (let i = 0; i < importObj.props.length; i++){
18+
if (!this.userProps.includes(importObj.props[i])){
19+
this.createProp(importObj.props[i])
20+
}
21+
}
22+
}
23+
24+
if (imported === false && !this.componentNameInputValue.replace(/[^a-z0-9-_.]/gi, "")) {
25+
event.preventDefault();
26+
return false;
27+
}
28+
29+
// boilerplate properties for each component upon creation
30+
const component = {
31+
x: 0,
32+
y: 20,
33+
z: 0,
34+
w: 200,
35+
h: 200,
36+
htmlList: this.selectedElementList,
37+
noteList: [],
38+
children: [],
39+
actions: [],
40+
props: [],
41+
state: [],
42+
parent: {},
43+
isActive: false,
44+
};
45+
46+
if (imported === true){
47+
component.componentName = importObj.componentName;
48+
component.htmlList = importObj.htmlList;
49+
component.actions = importObj.actions;
50+
component.state = importObj.state;
51+
component.props = importObj.props;
52+
} else {
53+
component.componentName = this.componentNameInputValue.replace(/[^a-z0-9-_.]/gi,"");
54+
}
55+
56+
if (!this.componentMap[component.componentName]) {
57+
this.registerComponent(component);
58+
this.setActiveComponent(component.componentName);
59+
}
60+
}
61+
createComponent(importObj)
62+
}

0 commit comments

Comments
 (0)