HTTP request config component: do not mutate prop

use an event-driven mutation scheme, i.e., adapt the common v-model
approach to bind data to the child component.
This commit is contained in:
Bernhard Kirchen 2024-06-26 23:01:27 +02:00
parent 6b19b877c6
commit 9911dec279
2 changed files with 13 additions and 4 deletions

View File

@ -63,11 +63,20 @@
<script lang="ts">
import { defineComponent } from 'vue';
import type { HttpRequestConfig } from '@/types/HttpRequestConfig';
import InputElement from '@/components/InputElement.vue';
export default defineComponent({
props: {
'cfg': { type: Object, required: true }
props: { 'modelValue': Object as () => HttpRequestConfig },
computed: {
cfg: {
get(): HttpRequestConfig {
return this.modelValue || {} as HttpRequestConfig;
},
set(newValue: HttpRequestConfig): void {
this.$emit('update:modelValue', newValue);
}
}
},
components: {
InputElement

View File

@ -143,7 +143,7 @@
<div v-if="httpJson.enabled">
<HttpRequestSettings :cfg="httpJson.http_request" v-if="index == 0 || powerMeterConfigList.http_json.individual_requests"/>
<HttpRequestSettings v-model="httpJson.http_request" v-if="index == 0 || powerMeterConfigList.http_json.individual_requests"/>
<InputElement :label="$t('powermeteradmin.valueJsonPath')"
v-model="httpJson.json_path"
@ -204,7 +204,7 @@
:postfix="$t('powermeteradmin.seconds')"
wide />
<HttpRequestSettings :cfg="powerMeterConfigList.http_sml.http_request" />
<HttpRequestSettings v-model="powerMeterConfigList.http_sml.http_request" />
</CardElement>
<CardElement