import Axios from 'axios'; import Vue from 'vue'; import AuthService from '../services/auth'; const internals = {}; internals.kPostsRoute = '/api/posts'; internals.kCommentsRoute = '/comments'; export default internals.CommentFormComponent = Vue.component('comment-form', { template: '
' + '

' + '' + '

' + '' + '

{{message}}

' + '' + '
', props: ['postUuid'], data() { return { content: '', message: '', active: false, submitting: false, authService: new AuthService() }; }, methods: { // Activates the form. activate() { this.active = true; }, // Creates a comment submit() { this.submitting = true; const route = `${internals.kPostsRoute}/${this.postUuid}${internals.kCommentsRoute}`; return Axios({ method: 'post', headers: { Authorization: `Bearer ${this.authService.token}` }, data: { content: this.content }, url: route }).then((response) => { this.$emit('comment-submitted', response.data); this.content = ''; this.message = ''; this.submitting = false; this.active = false; }).catch((err) => { console.error(err.stack); this.submitting = false; this.message = 'Error while creating the post...'; }); } } });