gun/examples/basic/emoji.html
Mark Nadal 6564800aa2 relay
2021-08-18 21:46:04 -07:00

21 lines
1023 B
HTML

<!DOCTYPE html>
<ul id='list'></ul>
<form id='form'>
<input id='who' placeholder='name'>
<input id='what' placeholder='say'>
<input type='submit' value='send'>
</form>
<script src="../../../gun/gun.js"></script>
<script src="https://cdn.jsdelivr.net/npm/emojione@4.0.0/lib/js/emojione.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/emojione@4.0.0/extras/css/emojione.min.css"/>
<script>
gun = Gun(location.origin + '/gun'), chat = gun.get("chat/" + location.hash.slice(1));
form.onsubmit = (eve) => { chat.set(who.value+': '+what.value), eve.preventDefault(what.value = "") }
chat.map().once((data) => { render(data) });
function render(msg, li, beep){ // render emoji, scroll to bottom, and notify sound!
(li = document.createElement("li")).innerText = emojione.shortnameToUnicode(msg);
list.appendChild(li), window.scroll(0, list.offsetHeight);
(beep = new SpeechSynthesisUtterance()).text = "new";
beep.rate = 10, beep.pitch = 2, window.speechSynthesis.speak(beep);
}
</script>