// app.js — bootstrap. Runs after every other module's IIFE has // registered its functions on window.app.modules. (function () { 'use strict'; var state = window.app.state; var loader = window.app.modules.loader; var tree = window.app.modules.tree; var events = window.app.modules.events; async function bootstrap() { events.init(); // Try server auto-detect. If this page is served by zddc-server // (or any server with a Caddy-shaped JSON listing), load the // current directory automatically. Otherwise show the empty // state with the "Select Directory" button. var detected = await loader.autoDetectServerMode(); if (detected) { tree.setRoot(detected.entries); events.showBrowseRoot(); tree.render(); events.statusInfo('Loaded ' + detected.entries.length + ' item' + (detected.entries.length === 1 ? '' : 's') + ' from ' + detected.path); } // Else: empty state stays visible; user can click Select Directory. } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', bootstrap); } else { bootstrap(); } })();