JSFiddle - React, Tailwind, and code Playground
HTML
<textarea></textarea>
<button>
Add
</button>
JavaScript
const btn = document.querySelector('button');
const elem = document.querySelector('textarea');
const textPast = '😁';
let caret = 0;
elem.onblur = function() {
caret = this.selectionStart;
};
btn.onclick = function() {
const value = elem.value;
const textBeforeCaret = value.slice(0, caret);
const textAfterCaret = value.slice(caret);
elem.value = textBeforeCaret.concat(textPast, textAfterCaret);
elem.setSelectionRange(caret+1, caret+1);
elem.focus();
//elem.setSelectionRange(0, 0);
}