46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
const html = require('choo/html');
|
|
const assets = require('../../common/assets');
|
|
const { list } = require('../utils');
|
|
const archiveTile = require('./archiveTile');
|
|
|
|
function intro(state) {
|
|
return html`
|
|
<article class="flex flex-col items-center justify-center bg-white border border-grey-light p-2">
|
|
<p class="text-center">
|
|
<div class="font-semibold">${state.translate('uploadPageHeader')}</div>
|
|
<div class="italic">${state.translate('pageHeaderCredits')}</div>
|
|
</p>
|
|
<img src="${assets.get('illustration_download.svg')}"/>
|
|
<p class="m-4 max-w-sm text-sm font-light">${state.translate(
|
|
'uploadPageExplainer'
|
|
)}</p>
|
|
</article>`;
|
|
}
|
|
|
|
module.exports = function(state, emit) {
|
|
const archives = state.storage.files.map(archive =>
|
|
archiveTile(state, emit, archive)
|
|
);
|
|
let wip = '';
|
|
if (state.uploading) {
|
|
wip = archiveTile.uploading(state, emit);
|
|
} else if (state.archive) {
|
|
wip = archiveTile.wip(state, emit);
|
|
} else {
|
|
wip = archiveTile.empty(state, emit);
|
|
}
|
|
archives.reverse();
|
|
if (archives.length < 1) {
|
|
archives.push(intro(state));
|
|
}
|
|
return html`
|
|
<section class="relative h-full w-full px-6 md:flex md:flex-row">
|
|
<div class="pt-4 md:pb-4 md:mr-6 md:w-1/2">${wip}</div>
|
|
${list(
|
|
archives,
|
|
'list-reset h-full md:w-1/2 overflow-y-scroll foo pt-2',
|
|
'py-2'
|
|
)}
|
|
</section>`;
|
|
};
|