fix: issues with global environment writes
This commit is contained in:
@@ -101,9 +101,11 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import clone from "lodash/clone"
|
import clone from "lodash/clone"
|
||||||
import { defineComponent, PropType } from "@nuxtjs/composition-api"
|
import { computed, defineComponent, PropType } from "@nuxtjs/composition-api"
|
||||||
import {
|
import {
|
||||||
Environment,
|
Environment,
|
||||||
|
getEnviroment,
|
||||||
|
getGlobalVariables,
|
||||||
setGlobalEnvVariables,
|
setGlobalEnvVariables,
|
||||||
updateEnvironment,
|
updateEnvironment,
|
||||||
} from "~/newstore/environments"
|
} from "~/newstore/environments"
|
||||||
@@ -111,15 +113,29 @@ import {
|
|||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
props: {
|
props: {
|
||||||
show: Boolean,
|
show: Boolean,
|
||||||
editingEnvironment: {
|
|
||||||
type: Object as PropType<Environment | null>,
|
|
||||||
default: null,
|
|
||||||
},
|
|
||||||
editingEnvironmentIndex: {
|
editingEnvironmentIndex: {
|
||||||
type: [Number, String] as PropType<number | "global">,
|
type: [Number, String] as PropType<number | "global" | null>,
|
||||||
default: null,
|
default: null,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
setup(props) {
|
||||||
|
const workingEnv = computed(() => {
|
||||||
|
if (props.editingEnvironmentIndex === null) return null
|
||||||
|
|
||||||
|
if (props.editingEnvironmentIndex === "global") {
|
||||||
|
return {
|
||||||
|
name: "Global",
|
||||||
|
variables: getGlobalVariables(),
|
||||||
|
} as Environment
|
||||||
|
} else {
|
||||||
|
return getEnviroment(props.editingEnvironmentIndex)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return {
|
||||||
|
workingEnv,
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
name: null as string | null,
|
name: null as string | null,
|
||||||
@@ -128,13 +144,9 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
editingEnvironment() {
|
|
||||||
this.name = this.editingEnvironment?.name ?? null
|
|
||||||
this.vars = clone(this.editingEnvironment?.variables ?? [])
|
|
||||||
},
|
|
||||||
show() {
|
show() {
|
||||||
this.name = this.editingEnvironment?.name ?? null
|
this.name = this.workingEnv?.name ?? null
|
||||||
this.vars = clone(this.editingEnvironment?.variables ?? [])
|
this.vars = clone(this.workingEnv?.variables ?? [])
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -170,7 +182,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
if (this.editingEnvironmentIndex === "global")
|
if (this.editingEnvironmentIndex === "global")
|
||||||
setGlobalEnvVariables(environmentUpdated.variables)
|
setGlobalEnvVariables(environmentUpdated.variables)
|
||||||
else updateEnvironment(this.editingEnvironmentIndex, environmentUpdated)
|
else updateEnvironment(this.editingEnvironmentIndex!, environmentUpdated)
|
||||||
this.hideModal()
|
this.hideModal()
|
||||||
},
|
},
|
||||||
hideModal() {
|
hideModal() {
|
||||||
|
|||||||
@@ -67,7 +67,6 @@
|
|||||||
/>
|
/>
|
||||||
<EnvironmentsEdit
|
<EnvironmentsEdit
|
||||||
:show="showModalEdit"
|
:show="showModalEdit"
|
||||||
:editing-environment="editingEnvironment"
|
|
||||||
:editing-environment-index="editingEnvironmentIndex"
|
:editing-environment-index="editingEnvironmentIndex"
|
||||||
@hide-modal="displayModalEdit(false)"
|
@hide-modal="displayModalEdit(false)"
|
||||||
/>
|
/>
|
||||||
@@ -80,14 +79,14 @@
|
|||||||
environment-index="global"
|
environment-index="global"
|
||||||
:environment="globalEnvironment"
|
:environment="globalEnvironment"
|
||||||
class="border-b border-dashed border-dividerLight"
|
class="border-b border-dashed border-dividerLight"
|
||||||
@edit-environment="editEnvironment(globalEnvironment, 'global')"
|
@edit-environment="editEnvironment('global')"
|
||||||
/>
|
/>
|
||||||
<EnvironmentsEnvironment
|
<EnvironmentsEnvironment
|
||||||
v-for="(environment, index) in environments"
|
v-for="(environment, index) in environments"
|
||||||
:key="`environment-${index}`"
|
:key="`environment-${index}`"
|
||||||
:environment-index="index"
|
:environment-index="index"
|
||||||
:environment="environment"
|
:environment="environment"
|
||||||
@edit-environment="editEnvironment(environment, index)"
|
@edit-environment="editEnvironment(index)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@@ -107,26 +106,23 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from "@nuxtjs/composition-api"
|
import { computed, defineComponent } from "@nuxtjs/composition-api"
|
||||||
import { useReadonlyStream, useStream } from "~/helpers/utils/composables"
|
import { useReadonlyStream, useStream } from "~/helpers/utils/composables"
|
||||||
import {
|
import {
|
||||||
environments$,
|
environments$,
|
||||||
setCurrentEnvironment,
|
setCurrentEnvironment,
|
||||||
selectedEnvIndex$,
|
selectedEnvIndex$,
|
||||||
Environment,
|
|
||||||
globalEnv$,
|
globalEnv$,
|
||||||
} from "~/newstore/environments"
|
} from "~/newstore/environments"
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
setup() {
|
setup() {
|
||||||
const globalEnv = useReadonlyStream(globalEnv$, [])
|
const globalEnv = useReadonlyStream(globalEnv$, [])
|
||||||
const globalEnvName = {
|
|
||||||
|
const globalEnvironment = computed(() => ({
|
||||||
name: "Global",
|
name: "Global",
|
||||||
}
|
|
||||||
const globalEnvVariables = {
|
|
||||||
variables: globalEnv.value,
|
variables: globalEnv.value,
|
||||||
}
|
}))
|
||||||
const globalEnvironment = Object.assign(globalEnvName, globalEnvVariables)
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
environments: useReadonlyStream(environments$, []),
|
environments: useReadonlyStream(environments$, []),
|
||||||
@@ -143,8 +139,7 @@ export default defineComponent({
|
|||||||
showModalImportExport: false,
|
showModalImportExport: false,
|
||||||
showModalAdd: false,
|
showModalAdd: false,
|
||||||
showModalEdit: false,
|
showModalEdit: false,
|
||||||
editingEnvironment: undefined as Environment | undefined,
|
editingEnvironmentIndex: undefined as number | "global" | undefined,
|
||||||
editingEnvironmentIndex: undefined as number | undefined,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -159,13 +154,11 @@ export default defineComponent({
|
|||||||
displayModalImportExport(shouldDisplay: boolean) {
|
displayModalImportExport(shouldDisplay: boolean) {
|
||||||
this.showModalImportExport = shouldDisplay
|
this.showModalImportExport = shouldDisplay
|
||||||
},
|
},
|
||||||
editEnvironment(environment: Environment, environmentIndex: number) {
|
editEnvironment(environmentIndex: number | "global") {
|
||||||
this.$data.editingEnvironment = environment
|
|
||||||
this.$data.editingEnvironmentIndex = environmentIndex
|
this.$data.editingEnvironmentIndex = environmentIndex
|
||||||
this.displayModalEdit(true)
|
this.displayModalEdit(true)
|
||||||
},
|
},
|
||||||
resetSelectedData() {
|
resetSelectedData() {
|
||||||
this.$data.editingEnvironment = undefined
|
|
||||||
this.$data.editingEnvironmentIndex = undefined
|
this.$data.editingEnvironmentIndex = undefined
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -476,3 +476,7 @@ export function updateEnvironmentVariable(
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getEnviroment(index: number) {
|
||||||
|
return environmentsStore.value.environments[index]
|
||||||
|
}
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ function setupGlobalEnvsPersistence() {
|
|||||||
setGlobalEnvVariables(globals)
|
setGlobalEnvVariables(globals)
|
||||||
|
|
||||||
globalEnv$.subscribe((vars) => {
|
globalEnv$.subscribe((vars) => {
|
||||||
window.localStorage.setItem("globalEnvs", JSON.stringify(vars))
|
window.localStorage.setItem("globalEnv", JSON.stringify(vars))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user