38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
/**
|
|
* app.js — VideoPress entry point
|
|
* --------------------------------
|
|
* Imports every feature module and calls its init function.
|
|
* No application logic lives here — this file is intentionally thin.
|
|
*
|
|
* Module layout
|
|
* -------------
|
|
* utils.js Pure helpers: esc(), fmtTime(), pad()
|
|
* state.js Shared state object, DOM refs (els), announce()
|
|
* theme.js Dark / light mode toggle
|
|
* browser.js Server-side directory browser modal
|
|
* scan.js /api/scan, file selection table, select-all controls
|
|
* progress.js Progress bars, results card, stream-lost banner
|
|
* stream.js SSE stream, reconnect, snapshot restore (applySnapshot)
|
|
* compress.js Start / cancel / restart compression, notification opt-in
|
|
* session.js Page-load restore via /api/compress/active
|
|
* settings.js SMTP email settings modal
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
import { initTheme } from './modules/theme.js';
|
|
import { initBrowser } from './modules/browser.js';
|
|
import { initScan } from './modules/scan.js';
|
|
import { initStreamControls } from './modules/stream.js';
|
|
import { initCompress } from './modules/compress.js';
|
|
import { tryRestoreSession } from './modules/session.js';
|
|
import { initSettings } from './modules/settings.js';
|
|
|
|
initTheme();
|
|
initBrowser();
|
|
initScan();
|
|
initStreamControls();
|
|
initCompress();
|
|
initSettings();
|
|
|
|
tryRestoreSession();
|