1 <form novalidate [formGroup]=
"form" (ngSubmit)=
"formValidated()">
2 <div class=
"avatar-and-textarea">
3 <my-actor-avatar [actor]=
"user?.account" [actorType]=
"getAvatarActorType()" size=
"25"></my-actor-avatar>
5 <div class=
"textarea-wrapper">
6 <textarea i18n-placeholder
placeholder=
"Add comment..." myAutoResize
7 [readonly]=
"(user === null) ? true : false"
8 (click)=
"openVisitorModal($event)"
9 formControlName=
"text" [ngClass]=
"{ 'input-error': formErrors['text'] }"
10 (keyup.control.enter)=
"onValidKey()" (keyup.meta.enter)=
"onValidKey()" #textarea
>
14 [ngClass]=
"{ 'is-rtl': isRTL() }" class=
"markdown-guide" helpType=
"custom" iconName=
"markdown"
15 tooltipPlacement=
"left auto" autoClose=
"true" i18n-title
title=
"Markdown compatible"
17 <ng-template ptTemplate=
"customHtml">
18 <span i18n
>Markdown compatible that supports:
</span>
21 <li><span i18n
>Auto generated links
</span></li>
22 <li><span i18n
>Break lines
</span></li>
23 <li><span i18n
>Lists
</span></li>
25 <span i18n
>Emphasis
</span>
26 <code>**
<strong i18n
>bold
</strong>** _
<i i18n
>italic
</i>_
</code>
29 <span i18n
>Emoji shortcuts
</span>
33 <span i18n
>Emoji markup
</span>
35 <div><a href=
"" (click)=
"openEmojiModal($event)" i18n
>See complete list
</a></div>
40 <div *
ngIf=
"formErrors.text" class=
"form-error">
46 <div class=
"comment-buttons">
47 <button *
ngIf=
"isAddButtonDisplayed()" class=
"peertube-button tertiary-button cancel-button" (click)=
"cancelCommentReply()" type=
"button" i18n
>
51 <button *
ngIf=
"isAddButtonDisplayed()" class=
"peertube-button orange-button" [ngClass]=
"{ disabled: !form.valid || addingComment }">
52 {{ addingCommentButtonValue }}
57 <ng-template #visitorModal let-modal
>
58 <div class=
"modal-header">
59 <h4 class=
"modal-title" id=
"modal-basic-title" i18n
>You are one step away from commenting
</h4>
60 <my-global-icon iconName=
"cross" aria-label=
"Close" role=
"button" (click)=
"hideModals()"></my-global-icon>
63 <div class=
"modal-body">
65 You can comment using an account on any ActivityPub-compatible instance (PeerTube/Mastodon/Pleroma account for example).
68 <my-remote-subscribe [interact]=
"true" [uri]=
"getUri()"></my-remote-subscribe>
71 <div class=
"modal-footer inputs">
73 type=
"button" role=
"button" i18n-value
value=
"Cancel" class=
"peertube-button grey-button"
74 (click)=
"hideModals()" (key.enter)=
"hideModals()"
77 <my-login-link i18n-label
label=
"Login to comment" className=
"peertube-button-link orange-button"></my-login-link>
81 <ng-template #emojiModal
>
82 <div class=
"modal-header">
83 <h4 class=
"modal-title" id=
"modal-basic-title" i18n
>Markdown Emoji List
</h4>
84 <my-global-icon iconName=
"cross" aria-label=
"Close" role=
"button" (click)=
"hideModals()"></my-global-icon>
86 <div class=
"modal-body">
87 <div class=
"emoji-flex">
88 <div class=
"emoji-flex-item" *
ngFor=
"let emojiMarkup of getEmojiMarkupList()">
89 {{ emojiMarkup.emoji }}
<code>:{{ emojiMarkup.name }}:
</code>