X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bvideos%2F%2Bvideo-watch%2Fcomment%2Fvideo-comment-add.component.ts;h=f1f0dfeba139b7183bd4b48eaf109beb511e00ee;hb=62bc0352d9d465ce9d7c3e074b1b60bf99155e24;hp=3fa5fd623af7a419549cdbfbe1f1c87da70966db;hpb=fdd1296521354401e9927e5faeb0aa17ba810c41;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+videos/+video-watch/comment/video-comment-add.component.ts b/client/src/app/+videos/+video-watch/comment/video-comment-add.component.ts index 3fa5fd623..f1f0dfeba 100644 --- a/client/src/app/+videos/+video-watch/comment/video-comment-add.component.ts +++ b/client/src/app/+videos/+video-watch/comment/video-comment-add.component.ts @@ -2,12 +2,12 @@ import { Observable } from 'rxjs' import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core' import { Router } from '@angular/router' import { Notifier, User } from '@app/core' -import { FormReactive, FormValidatorService, VideoCommentValidatorsService } from '@app/shared/shared-forms' -import { Video } from '@app/shared/shared-main' +import { VIDEO_COMMENT_TEXT_VALIDATOR } from '@app/shared/form-validators/video-comment-validators' +import { FormReactive, FormValidatorService } from '@app/shared/shared-forms' +import { Video, Account } from '@app/shared/shared-main' import { VideoComment, VideoCommentService } from '@app/shared/shared-video-comment' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { VideoCommentCreate } from '@shared/models' -import { I18n } from '@ngx-translate/i18n-polyfill' @Component({ selector: 'my-video-comment-add', @@ -34,32 +34,39 @@ export class VideoCommentAddComponent extends FormReactive implements OnChanges, constructor ( protected formValidatorService: FormValidatorService, - private videoCommentValidatorsService: VideoCommentValidatorsService, private notifier: Notifier, private videoCommentService: VideoCommentService, private modalService: NgbModal, - private router: Router, - private i18n: I18n + private router: Router ) { super() } get emojiMarkupList () { - const emojiMarkup = require('markdown-it-emoji/lib/data/light.json') + const emojiMarkupObjectList = require('markdown-it-emoji/lib/data/light.json') + + // Populate emoji-markup-list from object to array to avoid keys alphabetical order + const emojiMarkupArrayList = [] + for (const emojiMarkupName in emojiMarkupObjectList) { + if (emojiMarkupName) { + const emoji = emojiMarkupObjectList[emojiMarkupName] + emojiMarkupArrayList.push([emoji, emojiMarkupName]) + } + } - return emojiMarkup + return emojiMarkupArrayList } ngOnInit () { this.buildForm({ - text: this.videoCommentValidatorsService.VIDEO_COMMENT_TEXT + text: VIDEO_COMMENT_TEXT_VALIDATOR }) if (this.user) { if (!this.parentComment) { - this.addingCommentButtonValue = this.i18n('Comment') + this.addingCommentButtonValue = $localize`Comment` } else { - this.addingCommentButtonValue = this.i18n('Reply') + this.addingCommentButtonValue = $localize`Reply` } this.initTextValue() @@ -91,7 +98,7 @@ export class VideoCommentAddComponent extends FormReactive implements OnChanges, openEmojiModal (event: any) { event.preventDefault() - this.modalService.open(this.emojiModal, { backdrop: true }) + this.modalService.open(this.emojiModal, { backdrop: true, size: 'lg' }) } hideModals () { @@ -138,7 +145,7 @@ export class VideoCommentAddComponent extends FormReactive implements OnChanges, getAvatarUrl () { if (this.user) return this.user.accountAvatarUrl - return window.location.origin + '/client/assets/images/default-avatar.png' + return Account.GET_DEFAULT_AVATAR_URL() } gotoLogin () { @@ -185,7 +192,11 @@ export class VideoCommentAddComponent extends FormReactive implements OnChanges, this.textareaElement.nativeElement.focus() } + // Scroll to textarea this.textareaElement.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'nearest' }) + + // Use the native textarea autosize according to the text's break lines + this.textareaElement.nativeElement.dispatchEvent(new Event('input')) }) this.form.patchValue({ text })