uppy/src/views/ProviderView/Item.js
Renée Kooi 833334f224
Change how some props are passed to preact elements
- Prefer simply listing boolean attributes like `hidden` over assigning
  the string "true"
- Use numbers instead of strings for numeric properties
- Prefer object syntax for `style` attributes
2018-05-17 14:49:48 +02:00

48 lines
1.3 KiB
JavaScript

const { h } = require('preact')
module.exports = (props) => {
const stop = (ev) => {
if (ev.keyCode === 13) {
ev.stopPropagation()
ev.preventDefault()
}
}
const handleItemClick = (ev) => {
ev.preventDefault()
// when file is clicked, select it, but when folder is clicked, open it
if (props.type === 'folder') {
return props.handleClick(ev)
}
props.handleCheckboxClick(ev)
}
return (
<li class={'uppy-ProviderBrowserItem' + (props.isChecked ? ' uppy-ProviderBrowserItem--selected' : '')}>
<div class="uppy-ProviderBrowserItem-checkbox">
<input type="checkbox"
role="option"
tabindex={0}
aria-label={`Select ${props.title}`}
id={props.id}
checked={props.isChecked}
disabled={props.isDisabled}
onchange={props.handleCheckboxClick}
onkeyup={stop}
onkeydown={stop}
onkeypress={stop} />
<label
for={props.id}
onclick={props.handleCheckboxClick}
/>
</div>
<button type="button"
class="uppy-ProviderBrowserItem-inner"
aria-label={`Select ${props.title}`}
tabindex={0}
onclick={handleItemClick}>
{props.getItemIcon()} {props.showTitles && props.title}
</button>
</li>
)
}