const html = require('choo/html');
const assets = require('../../../common/assets');
const bytes = require('../../utils').bytes;
const fileIcon = require('../fileIcon');

module.exports = function(file, index, state, emit, hasPassword) {
  const transfer = state.transfer;
  const transferState = transfer ? transfer.state : null;
  const share = state.route.includes('share/');
  const complete = share ? 'uploadedFile--completed' : '';

  const cancelVisible =
    state.route === '/' && !state.uploading
      ? 'uploadedFile__cancel--visible'
      : '';

  const stampClass =
    share || transferState === 'complete' ? 'uploadedFile__stamp--visible' : '';

  function cancel(event) {
    event.preventDefault();
    if (state.route === '/') {
      emit('removeUpload', { index });
    }
  }

  return html`
    <li class="uploadedFile ${complete}" id="${file.id}" 
    >

      ${fileIcon(file.name, hasPassword)}

      <div class="uploadedFile__cancel ${cancelVisible}"
      onclick=${cancel}>
        <img
        src="${assets.get('close-16.svg')}"
        alt="cancel"/>
      </div>

      <div class="uploadedFile__fileData">
        <p class="uploadedFile__fileName">${file.name}</p>
        <p class="uploadedFile__fileInfo">
          <span>${bytes(file.size)}</span>
        </p>
      </div>

      <img src="${assets.get('sent-done.svg')}"
           class="uploadedFile__stamp ${stampClass}"/> 
    </li>
  `;
};