home.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const html = require('choo/html');
  2. const { list } = require('../utils');
  3. const archiveTile = require('./archiveTile');
  4. const modal = require('./modal');
  5. const intro = require('./intro');
  6. module.exports = function(state, emit) {
  7. const archives = state.storage.files
  8. .filter(archive => !archive.expired)
  9. .map(archive => archiveTile(state, emit, archive));
  10. let left = '';
  11. if (state.uploading) {
  12. left = archiveTile.uploading(state, emit);
  13. } else if (state.archive.numFiles > 0) {
  14. left = archiveTile.wip(state, emit);
  15. } else {
  16. left = archiveTile.empty(state, emit);
  17. }
  18. archives.reverse();
  19. const right =
  20. archives.length === 0
  21. ? intro(state)
  22. : list(
  23. archives,
  24. 'list-reset p-2 h-full overflow-y-auto w-full',
  25. 'mb-4 w-full'
  26. );
  27. return html`
  28. <main class="main relative">
  29. ${state.modal && modal(state, emit)}
  30. <section
  31. class="h-full w-full p-6 z-10 overflow-hidden md:flex md:flex-row md:rounded-lg md:shadow-big"
  32. >
  33. <div class="px-2 w-full md:px-0 md:mr-6 md:w-1/2">${left}</div>
  34. <div class="mt-6 w-full md:w-1/2 md:-m-2">${right}</div>
  35. </section>
  36. </main>
  37. `;
  38. };