mirror of
https://github.com/amark/gun.git
synced 2025-07-08 13:52:32 +00:00
21 lines
1023 B
HTML
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> |