send/app/ui/selectbox.js

33 lines
748 B
JavaScript
Raw Normal View History

2018-10-25 02:07:10 +00:00
const html = require('choo/html');
module.exports = function(selected, options, translate, changed, htmlId) {
2018-10-25 02:07:10 +00:00
let x = selected;
return html`
2018-11-16 20:39:36 +00:00
<select
id="${htmlId}"
2019-09-09 17:34:55 +00:00
class="appearance-none cursor-pointer border rounded bg-grey-10 hover:border-blue-50 focus:border-blue-50 pl-1 pr-8 py-1 my-1 h-8 dark:bg-grey-80"
2018-11-16 20:39:36 +00:00
onchange="${choose}"
>
2019-01-24 20:31:20 +00:00
${options.map(
i =>
html`
<option value="${i}" ${i === selected ? 'selected' : ''}
>${translate(i)}</option
>
`
)}
2018-11-16 20:39:36 +00:00
</select>
`;
2018-10-25 02:07:10 +00:00
function choose(event) {
const target = event.target;
const value = +target.value;
if (x !== value) {
x = value;
changed(value);
}
}
};