mizar/src/renderer/components/ModalNewMessage.vue

87 lines
2.2 KiB
Vue

<template>
<div id="popcontainer">
<div class="popup" :style="'min-width: 350px;'">
<div class="box-100">
<h4>{{ t('message.addMessage') }}</h4>
<div class="input-element">
<label>{{ t('word.name', 1) }}</label>
<input
v-model="message.name"
type="text"
required
autofocus
>
</div>
<div class="input-element">
<label>{{ t('word.message', 1) }}</label>
<textarea
v-model="message.message"
required
rows="5"
/>
</div>
</div>
<div class="input-element">
<label>{{ t('word.format') }}</label>
<select v-model="message.format" required>
<option value="" disabled>
{{ t('word.select') }}
</option>
<option value="utf-8">
UTF-8
</option>
<option value="hex">
HEX
</option>
</select>
</div>
<div class="buttons">
<button class="cancel" @click="close">
{{ t('word.cancel') }}
</button>
<button
class="confirm"
:disabled="validation"
@click="confirm"
>
{{ t('word.create') }}
</button>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n';
const emit = defineEmits(['hide-add-message', 'create-message']);
const message = ref({
message: '',
name: '',
enabled: true,
format: ''
});
const { t } = useI18n();
const validation = computed(() => {
return message.value.message === '' || message.value.name === '' || message.value.format === '';
});
const close = () => {
emit('hide-add-message');
};
const confirm = () => {
emit('create-message', message.value);
message.value = {
message: '',
name: '',
format: '',
enabled: true
};
};
</script>