summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkFormDialog.vue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-05-14 12:23:39 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-05-14 12:23:39 +0900
commit0717afc3124a5d7434af3df31dfa54cbf420f109 (patch)
tree6182a31c905872a6cd25f28f9c97322f6f1579e4 /packages/frontend/src/components/MkFormDialog.vue
parentrefactor(frontend): use composition api (diff)
downloadsharkey-0717afc3124a5d7434af3df31dfa54cbf420f109.tar.gz
sharkey-0717afc3124a5d7434af3df31dfa54cbf420f109.tar.bz2
sharkey-0717afc3124a5d7434af3df31dfa54cbf420f109.zip
refactor(frontend): use composition api
Diffstat (limited to 'packages/frontend/src/components/MkFormDialog.vue')
-rw-r--r--packages/frontend/src/components/MkFormDialog.vue80
1 files changed, 29 insertions, 51 deletions
diff --git a/packages/frontend/src/components/MkFormDialog.vue b/packages/frontend/src/components/MkFormDialog.vue
index 979df2e7c1..b4ef54aecd 100644
--- a/packages/frontend/src/components/MkFormDialog.vue
+++ b/packages/frontend/src/components/MkFormDialog.vue
@@ -54,8 +54,8 @@
</MkModalWindow>
</template>
-<script lang="ts">
-import { defineComponent } from 'vue';
+<script lang="ts" setup>
+import { reactive, shallowRef } from 'vue';
import MkInput from './MkInput.vue';
import MkTextarea from './MkTextarea.vue';
import MkSwitch from './MkSwitch.vue';
@@ -66,58 +66,36 @@ import MkRadios from './MkRadios.vue';
import MkModalWindow from '@/components/MkModalWindow.vue';
import { i18n } from '@/i18n';
-export default defineComponent({
- components: {
- MkModalWindow,
- MkInput,
- MkTextarea,
- MkSwitch,
- MkSelect,
- MkRange,
- MkButton,
- MkRadios,
- },
+const props = defineProps<{
+ title: string;
+ form: any;
+}>();
- props: {
- title: {
- type: String,
- required: true,
- },
- form: {
- type: Object,
- required: true,
- },
- },
+const emit = defineEmits<{
+ (ev: 'done', v: {
+ canceled?: boolean;
+ result?: any;
+ }): void;
+}>();
- emits: ['done'],
+const dialog = shallowRef<InstanceType<typeof MkModalWindow>>();
+const values = reactive({});
- data() {
- return {
- values: {},
- i18n,
- };
- },
+for (const item in props.form) {
+ values[item] = props.form[item].default ?? null;
+}
- created() {
- for (const item in this.form) {
- this.values[item] = this.form[item].default ?? null;
- }
- },
+function ok() {
+ emit('done', {
+ result: values,
+ });
+ dialog.value.close();
+}
- methods: {
- ok() {
- this.$emit('done', {
- result: this.values,
- });
- this.$refs.dialog.close();
- },
-
- cancel() {
- this.$emit('done', {
- canceled: true,
- });
- this.$refs.dialog.close();
- },
- },
-});
+function cancel() {
+ emit('done', {
+ canceled: true,
+ });
+ dialog.value.close();
+}
</script>