Skip to content

Instantly share code, notes, and snippets.

@CodeMyUI
Created March 22, 2017 23:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CodeMyUI/0a521536d0d63d161b8d8dcea914d1b5 to your computer and use it in GitHub Desktop.
Save CodeMyUI/0a521536d0d63d161b8d8dcea914d1b5 to your computer and use it in GitHub Desktop.
Text input with relevant emoji sorted with deeplearning
<main class="content">
<div class="result"></div>
<input class="input" type="text" autofocus />
</main>
<p class="credits">API by: <a href="http://getdango.com/" target="_blank">getdango</a><p>
const result = document.querySelector('.result')
const input = document.querySelector('.input')
input.addEventListener('input', _.debounce(findEmoji, 300))
function findEmoji () {
window.fetch(`https://emoji.getdango.com/api/emoji?q=${encodeURI(input.value)}`)
.then(response => response.json())
.then(json => handleResult(json.results))
.catch(error => console.error(error.message))
}
function handleResult (items) {
result.innerHTML = ''
if (!items) return
items.length = 7
items.forEach(item => {
const button = createEmojiButton(item.text)
result.appendChild(button);
})
}
function createEmojiButton(value) {
const element = document.createElement('button')
element.classList.add('button')
element.value = element.innerHTML = value
element.addEventListener('click', evt => {
input.value = `${input.value} ${evt.currentTarget.value}`
input.focus()
})
return element
}
// demo settings
input.value = 'I love hamburgers with fries'
// input.focus()
findEmoji()
<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/1.0.0/fetch.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
* {
box-sizing: border-box;
}
html {
font-family: 'Open Sans', serif;
}
body {
font-size: 2rem;
background-color: #BFEBEA;
}
.content {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
min-height:100vh;
}
.result {
display: flex;
height: 4rem;
margin-bottom: 1.5rem;
}
.button {
width: 4rem;
height: 4rem;
max-width: 4rem;
max-height: 4rem;
margin: 0.5rem;
padding-top: 0.5rem;
background: #F2F2F2;
border: 1px solid #CCCCCC;
border-radius: 2rem;
outline: none;
font-size: 2rem;
}
.button:first-child {
margin-left: 0;
}
.button:last-child {
margin-right: 0;
}
.input {
width: 34rem;
height: 4rem;
background: #F2F2F2;
border: 1px solid #CCCCCC;
border-radius: 2rem;
outline: none;
font-size: 2rem;
color: #737373;
letter-spacing: 1px;
text-indent: 2rem;
}
.announcement {
font-size: 1rem;
color: white
}
.credits {
position: fixed;
right: 2rem;
bottom: 0;
font-size: 1rem;
color: white
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment