home.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  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(archives, 'p-2 h-full overflow-y-auto w-full', 'mb-4 w-full');
  23. return html`
  24. <main class="main">
  25. ${state.modal && modal(state, emit)}
  26. <section
  27. class="h-full w-full p-6 md:p-8 overflow-hidden md:flex md:flex-row md:rounded-xl md:shadow-big"
  28. >
  29. <div class="px-2 w-full md:px-0 md:mr-8 md:w-1/2">${left}</div>
  30. <div class="mt-6 w-full md:w-1/2 md:-m-2">${right}</div>
  31. </section>
  32. </main>
  33. `;
  34. };