diff options
Diffstat (limited to 'packages/frontend/src/components')
| -rw-r--r-- | packages/frontend/src/components/MkForm.vue | 6 | ||||
| -rw-r--r-- | packages/frontend/src/components/MkWidgetSettingsDialog.vue | 11 |
2 files changed, 5 insertions, 12 deletions
diff --git a/packages/frontend/src/components/MkForm.vue b/packages/frontend/src/components/MkForm.vue index 750ffa77df..711aa611c3 100644 --- a/packages/frontend/src/components/MkForm.vue +++ b/packages/frontend/src/components/MkForm.vue @@ -7,15 +7,15 @@ SPDX-License-Identifier: AGPL-3.0-only <div v-if="Object.keys(form).filter(item => !form[item].hidden).length > 0" class="_gaps_m"> <template v-for="v, k in form"> <template v-if="typeof v.hidden == 'function' ? v.hidden(values) : v.hidden"></template> - <MkInput v-else-if="v.type === 'number'" v-model="values[k]" type="number" :step="v.step || 1"> + <MkInput v-else-if="v.type === 'number'" v-model="values[k]" type="number" :step="v.step || 1" :manualSave="v.manualSave"> <template #label><span v-text="v.label || k"></span><span v-if="v.required === false"> ({{ i18n.ts.optional }})</span></template> <template v-if="v.description" #caption>{{ v.description }}</template> </MkInput> - <MkInput v-else-if="v.type === 'string' && !v.multiline" v-model="values[k]" type="text" :mfmAutocomplete="v.treatAsMfm"> + <MkInput v-else-if="v.type === 'string' && !v.multiline" v-model="values[k]" type="text" :mfmAutocomplete="v.treatAsMfm" :manualSave="v.manualSave"> <template #label><span v-text="v.label || k"></span><span v-if="v.required === false"> ({{ i18n.ts.optional }})</span></template> <template v-if="v.description" #caption>{{ v.description }}</template> </MkInput> - <MkTextarea v-else-if="v.type === 'string' && v.multiline" v-model="values[k]" :mfmAutocomplete="v.treatAsMfm" :mfmPreview="v.treatAsMfm"> + <MkTextarea v-else-if="v.type === 'string' && v.multiline" v-model="values[k]" :mfmAutocomplete="v.treatAsMfm" :mfmPreview="v.treatAsMfm" :manualSave="v.manualSave"> <template #label><span v-text="v.label || k"></span><span v-if="v.required === false"> ({{ i18n.ts.optional }})</span></template> <template v-if="v.description" #caption>{{ v.description }}</template> </MkTextarea> diff --git a/packages/frontend/src/components/MkWidgetSettingsDialog.vue b/packages/frontend/src/components/MkWidgetSettingsDialog.vue index cebbe93986..0dc26e054d 100644 --- a/packages/frontend/src/components/MkWidgetSettingsDialog.vue +++ b/packages/frontend/src/components/MkWidgetSettingsDialog.vue @@ -29,7 +29,6 @@ SPDX-License-Identifier: AGPL-3.0-only > <component :is="`widget-${widgetName}`" - :key="currentId" :widget="{ name: widgetName, id: '__PREVIEW__', data: settings }" ></component> </div> @@ -48,13 +47,12 @@ SPDX-License-Identifier: AGPL-3.0-only <script setup lang="ts"> import { reactive, useTemplateRef, ref, computed, watch, onBeforeUnmount, onMounted } from 'vue'; +import MkPreviewWithControls from './MkPreviewWithControls.vue'; +import type { Form } from '@/utility/form.js'; import { deepClone } from '@/utility/clone.js'; -import { genId } from '@/utility/id.js'; import { i18n } from '@/i18n.js'; import MkModalWindow from '@/components/MkModalWindow.vue'; -import MkPreviewWithControls from './MkPreviewWithControls.vue'; import MkForm from '@/components/MkForm.vue'; -import type { Form } from '@/utility/form.js'; const props = defineProps<{ widgetName: string; @@ -71,11 +69,6 @@ const emit = defineEmits<{ const dialog = useTemplateRef('dialog'); const settings = reactive<Record<string, any>>(deepClone(props.currentSettings)); -const currentId = ref(genId()); - -watch(settings, () => { - currentId.value = genId(); -}); function save() { emit('saved', deepClone(settings)); |