app.js (874 B )


 1 // Wiring that spans the other files
 2 
 3 // Update all image positions when window resizes (for responsive scaling)
 4 window.addEventListener('resize', () => {
 5 	applyPageWidth(); // display or zoom may have changed
 6 	images.forEach(img => {
 7 		updateImagePosition(img);
 8 	});
 9 });
10 
11 // Warn before leaving page if images are present
12 window.addEventListener('beforeunload', (e) => {
13 	if (images.length > 0) {
14 		e.preventDefault();
15 		e.returnValue = '';
16 		return '';
17 	}
18 });
19 
20 // Mobile file input handling
21 const fileInput = document.getElementById('fileInput');
22 const addImagesBtn = document.getElementById('addImagesBtn');
23 
24 addImagesBtn.addEventListener('click', () => {
25 	fileInput.click();
26 });
27 
28 fileInput.addEventListener('change', async (e) => {
29 	await processAndAddImages(e.target.files, 0, 0);
30 
31 	// Clear the input so the same files can be selected again
32 	fileInput.value = '';
33 });