59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
|
const html = require('choo/html');
|
||
|
|
||
|
module.exports = function() {
|
||
|
return function(state, emit, close) {
|
||
|
const archive = state.fileInfo;
|
||
|
return html`
|
||
|
<send-download-dialog
|
||
|
class="flex flex-col w-full max-w-sm h-full mx-auto items-center justify-center"
|
||
|
>
|
||
|
<h1 class="text-3xl font-bold mb-4">
|
||
|
${state.translate('downloadConfirmTitle')}
|
||
|
</h1>
|
||
|
<p
|
||
|
class="w-full text-grey-80 text-center leading-normal dark:text-grey-40 mb-8"
|
||
|
>
|
||
|
${state.translate('downloadConfirmDescription')}
|
||
|
</p>
|
||
|
<div class="checkbox inline-block mr-3 mb-8">
|
||
|
<input
|
||
|
id="trust-download"
|
||
|
type="checkbox"
|
||
|
autocomplete="off"
|
||
|
onchange="${toggleDownloadEnabled}"
|
||
|
/>
|
||
|
<label for="trust-download">
|
||
|
${state.translate('downloadTrustCheckbox')}
|
||
|
</label>
|
||
|
</div>
|
||
|
<button
|
||
|
id="download-btn"
|
||
|
disabled
|
||
|
class="btn rounded-lg w-full flex-shrink-0"
|
||
|
onclick="${download}"
|
||
|
title="${state.translate('downloadButtonLabel')}"
|
||
|
>
|
||
|
${state.translate('downloadButtonLabel')}
|
||
|
</button>
|
||
|
<a href="/report" class="link-blue mt-8"
|
||
|
>${state.translate('reportFile')}</a
|
||
|
>
|
||
|
</send-download-dialog>
|
||
|
`;
|
||
|
|
||
|
function toggleDownloadEnabled(event) {
|
||
|
event.stopPropagation();
|
||
|
const checked = event.target.checked;
|
||
|
const btn = document.getElementById('download-btn');
|
||
|
btn.disabled = !checked;
|
||
|
}
|
||
|
|
||
|
function download(event) {
|
||
|
event.preventDefault();
|
||
|
close();
|
||
|
event.target.disabled = true;
|
||
|
emit('download', archive);
|
||
|
}
|
||
|
};
|
||
|
};
|