Change:
To reproduce. click smiley in the bottom right of editor window. The feedback form should appear enter several characters, press "Enter" (the new line should appear) continue entering characters while you can You should stop at "1 characters left" (declensions?) After that you will not be able to enter anything On the screenshot. There's a newline after "1". I reached the end of input and unable to enter more characters. But counter still says "1 characters left": <img width="468" alt="" src=""Mac OS 10.10.5 Yosemite
This is interesting. I created this to reproduce the behavior. do you have any thoughts on this? Here are a couple ideas we've talked about before. 1 - Remove the text area completely and replace with just the tweet button. This makes sense because we're submitting to twitter anyways. 2 - Hack the text area element to get better behavior. This would involve looking for new line characters based on the batter described by OP. I'm not a fan of this as it seems error prone. If we go with option 1, I'll work with Brad and get some design love on the form. any thoughts? I created PR to fix the "s" on singular count issue.
Thanks for your amazing job and thanks for asking! :blush: If the "Tweet" button will not require having a Twitter account, then it's a solution, I guess. I feel a bit weird reporting those super-tiny issues that still require developers time. Is the related (then we should star it)? Probably even disabling line breaks (like turning into line input) could be a solution.
Yes that is the exact issue. Starred it! I thought about disabling line breaks, but I think it would be a good thing for the user to do, considering Twitter supports line breaks. The Tweet button wouldn't require a Twitter account, but once the Tweet button takes them to twitter they would need to login.
Well, the need to login on Twitter is a requirement to have a Twitter account :blush: I wouldn't think it's a good UX :relaxed:
Right. Unfortunately Twitter doesn't support anonymous tweets.
After some internal discussion we decided to go with a dialog redesign. Will work with our UX designer to get some help.
Closing as it will be fixed with .

Discussion:
this.feedbackForm = <HTMLFormElement>$form.getHTMLElement(); <del> $('h2.title').text(nls.localize("label.sendASmile", "Tweet us your feedback")).appendTo($form); </del> <ins> $('h2.title').text(nls.localize("label.sendASmile", "Tweet us your feedback.")).appendTo($form); </ins> this.invoke($('div.cancel').attr('tabindex', '0'), () => { this.hide();

$('div').append($('a').attr('target', '_blank').attr('href', this.requestFeatureLink).text(nls.localize("request a missing feature", "Request a missing feature")).attr('tabindex', '0')) .appendTo($contactUsContainer); <del> let $charCounter = $('span.char-counter').text('(' + FeedbackDropdown.MAX_FEEDBACK_CHARS + ' ' + nls.localize("characters left", "characters left") + ')'); </del> <ins> let $charCounter = $('span.char-counter').text(this.getCharCountText(0)); </ins> $('h3').text(nls.localize("tell us why?", "Tell us why?")) .append($charCounter)

}) .text(this.feedback).attr('required', 'required') .on('keyup', () => { <del> $charCounter.text('(' + (FeedbackDropdown.MAX_FEEDBACK_CHARS - this.feedbackDescriptionInput.value.length) + ' ' + nls.localize("characters left", "characters left") + ')'); </del> <ins> $charCounter.text(this.getCharCountText(this.feedbackDescriptionInput.value.length)); </ins> this.feedbackDescriptionInput.value ? this.sendButton.removeAttribute('disabled') : this.sendButton.attr('disabled', ''); }) .appendTo($form).domFocus().getHTMLElement();

}; } <ins> private getCharCountText(charCount: number): string { let remaining = FeedbackDropdown.MAX_FEEDBACK_CHARS - charCount; let text = (remaining == 1) ? nls.localize("character left", "character left") : nls.localize("characters left", "characters left"); return '(' + remaining + ' ' + text + ')'; } </ins> protected setSentiment(smile: boolean): void { if (smile) { this.smileyInput.addClass('checked');

case FormEvent.SENDING: this.isSendingFeedback = true; this.sendButton.setClass('send in-progress'); <del> this.sendButton.value(nls.localize('feedbackSending', "Sending...")); </del> <ins> this.sendButton.value(nls.localize('feedbackSending', "Sending")); </ins> break; case FormEvent.SENT: this.isSendingFeedback = false; <del> this.sendButton.setClass('send success').value(nls.localize('feedbackSent', "Thanks :)")); </del> <ins> this.sendButton.setClass('send success').value(nls.localize('feedbackSent', "Thanks")); </ins> this.resetForm(); this.autoHideTimeout = setTimeout(() => { this.hide();