fchat-rising/chat/PmPartnerAdder.vue

49 lines
1.1 KiB
Vue

<template>
<modal action="Open Conversation" ref="dialog" @submit="submit" style="width:98%" dialogClass="ads-dialog" buttonText="Open">
<div>
<input type="text" id="name" v-model="name" placeholder="Name" ref="name" />
<div class="error" v-if="error">{{error}}</div>
</div>
</modal>
</template>
<script lang="ts">
import { Component, Hook } from '@f-list/vue-ts';
import CustomDialog from '../components/custom_dialog';
import Modal from '../components/Modal.vue';
import core from './core';
@Component({
components: {modal: Modal}
})
export default class PmPartnerAdder extends CustomDialog {
name = '';
error: string | null = null;
@Hook('activated')
async onMounted(): Promise<void> {
(this.$refs.name as HTMLInputElement).focus();
}
submit(): void {
const c = core.characters.get(this.name);
if (c) {
const conversation = core.conversations.getPrivate(c);
conversation.show();
this.name = '';
this.error = '';
} else {
this.error = `Unknown character '${this.name}'`;
}
}
}
</script>