From 6ebf64bf037d577f1476f0d28980a83abdacc126 Mon Sep 17 00:00:00 2001 From: pikax Date: Fri, 24 Jul 2020 12:03:38 +0100 Subject: [PATCH 1/4] feat(next): add store as global --- .../src/features/inspector/DataField.vue | 9 +++++++++ packages/app-frontend/src/locales/en.js | 3 ++- packages/shared-utils/src/util.ts | 17 +++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/app-frontend/src/features/inspector/DataField.vue b/packages/app-frontend/src/features/inspector/DataField.vue index 3f4265ec6..22b56c802 100644 --- a/packages/app-frontend/src/features/inspector/DataField.vue +++ b/packages/app-frontend/src/features/inspector/DataField.vue @@ -143,6 +143,11 @@ > {{ $t('DataField.contextMenu.copyValue') }} + + {{ $t('DataField.contextMenu.storeGlobal') }} @@ -430,6 +435,10 @@ export default { copyToClipboard(this.field.value) }, + storeAsGlobal() { + storeAsGlobal(this.field.value); + }, + onClick (event) { // Cancel if target is interactive if (event.target.tagName === 'INPUT' || event.target.className.includes('button')) { diff --git a/packages/app-frontend/src/locales/en.js b/packages/app-frontend/src/locales/en.js index d211f749a..cf64f69ba 100644 --- a/packages/app-frontend/src/locales/en.js +++ b/packages/app-frontend/src/locales/en.js @@ -37,7 +37,8 @@ export default { } }, contextMenu: { - copyValue: 'Copy Value' + copyValue: 'Copy Value', + storeGlobal: "Store as global" }, quickEdit: { number: { diff --git a/packages/shared-utils/src/util.ts b/packages/shared-utils/src/util.ts index ba297b8d3..f65dcf0aa 100644 --- a/packages/shared-utils/src/util.ts +++ b/packages/shared-utils/src/util.ts @@ -650,3 +650,20 @@ export function copyToClipboard (state) { document.execCommand('copy') document.body.removeChild(dummyTextArea) } + +let globalCount = 0 +export function storeAsGlobal(state) { + const target = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {} + + const name = 'vueTemp'; + + let i= 0; // prevent infinite loop + do { + ++globalCount; + }while(!!target[name] || (++i) > 500 ); + + const varName = name + globalCount; + + target[varName] = state; + console.log(varName, state) +} \ No newline at end of file From 8c7a56a1dccc65adea52b3edd2dc5b8dafa1b671 Mon Sep 17 00:00:00 2001 From: pikax Date: Fri, 24 Jul 2020 12:08:44 +0100 Subject: [PATCH 2/4] add missing import --- packages/app-frontend/src/features/inspector/DataField.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/app-frontend/src/features/inspector/DataField.vue b/packages/app-frontend/src/features/inspector/DataField.vue index 22b56c802..064e52f08 100644 --- a/packages/app-frontend/src/features/inspector/DataField.vue +++ b/packages/app-frontend/src/features/inspector/DataField.vue @@ -217,7 +217,8 @@ import { isPlainObject, sortByKey, openInEditor, - copyToClipboard + copyToClipboard, + storeAsGlobal } from '@utils/util' import { formattedValue, valueType } from '@front/util/format' From 5103e4b04dd5fcaf8cae52d6b1845ebe0483d3b0 Mon Sep 17 00:00:00 2001 From: pikax Date: Fri, 24 Jul 2020 12:10:52 +0100 Subject: [PATCH 3/4] improve var name --- packages/shared-utils/src/util.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/shared-utils/src/util.ts b/packages/shared-utils/src/util.ts index f65dcf0aa..a357d478f 100644 --- a/packages/shared-utils/src/util.ts +++ b/packages/shared-utils/src/util.ts @@ -652,18 +652,18 @@ export function copyToClipboard (state) { } let globalCount = 0 -export function storeAsGlobal(state) { +export function storeAsGlobal (state) { const target = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {} - const name = 'vueTemp'; - - let i= 0; // prevent infinite loop - do { - ++globalCount; - }while(!!target[name] || (++i) > 500 ); + const name = 'vueTemp' - const varName = name + globalCount; + let i = 0 // prevent infinite loop + let varName = name + globalCount + do { + ++globalCount + varName = name + globalCount + } while (!!target[varName] || (++i) > 500) - target[varName] = state; + target[varName] = state console.log(varName, state) -} \ No newline at end of file +} From fba4fb6a7b672a3220b297b323ffbc520d47f521 Mon Sep 17 00:00:00 2001 From: pikax Date: Fri, 24 Jul 2020 12:11:10 +0100 Subject: [PATCH 4/4] lint --- packages/app-frontend/src/features/inspector/DataField.vue | 6 +++--- packages/app-frontend/src/locales/en.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/app-frontend/src/features/inspector/DataField.vue b/packages/app-frontend/src/features/inspector/DataField.vue index 064e52f08..d8813beb1 100644 --- a/packages/app-frontend/src/features/inspector/DataField.vue +++ b/packages/app-frontend/src/features/inspector/DataField.vue @@ -143,7 +143,7 @@ > {{ $t('DataField.contextMenu.copyValue') }} - +