mirror of
https://github.com/docsifyjs/docsify.git
synced 2026-01-18 15:13:00 +00:00
* chore: added new linter config * chore: linting fixes * chore: refactore in linting config and minor linting fixes
44 lines
794 B
JavaScript
44 lines
794 B
JavaScript
import * as dom from '../util/dom';
|
|
|
|
let barEl;
|
|
let timeId;
|
|
|
|
/**
|
|
* Init progress component
|
|
*/
|
|
function init() {
|
|
const div = dom.create('div');
|
|
|
|
div.classList.add('progress');
|
|
dom.appendTo(dom.body, div);
|
|
barEl = div;
|
|
}
|
|
|
|
/**
|
|
* Render progress bar
|
|
*/
|
|
export default function({ loaded, total, step }) {
|
|
let num;
|
|
|
|
!barEl && init();
|
|
|
|
if (step) {
|
|
num = parseInt(barEl.style.width || 0, 10) + step;
|
|
num = num > 80 ? 80 : num;
|
|
} else {
|
|
num = Math.floor((loaded / total) * 100);
|
|
}
|
|
|
|
barEl.style.opacity = 1;
|
|
barEl.style.width = num >= 95 ? '100%' : num + '%';
|
|
|
|
if (num >= 95) {
|
|
clearTimeout(timeId);
|
|
// eslint-disable-next-line no-unused-vars
|
|
timeId = setTimeout(_ => {
|
|
barEl.style.opacity = 0;
|
|
barEl.style.width = '0%';
|
|
}, 200);
|
|
}
|
|
}
|