49 lines
1.1 KiB
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>
|