about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorelioat <elioat@tilde.institute>2025-03-30 14:21:20 -0400
committerelioat <elioat@tilde.institute>2025-03-30 14:21:20 -0400
commit710ad89c6acbafd4ab0024cd74dea3a3a44e0e69 (patch)
treeba939a5393ceda31bea42912d90f4264f3f8b1f8
parentdc35422ab591a9240485da2e69d10020eb1de5ff (diff)
downloadtour-710ad89c6acbafd4ab0024cd74dea3a3a44e0e69.tar.gz
*
-rw-r--r--js/leibovitz/index.html5
-rw-r--r--js/leibovitz/leibovitz.js91
2 files changed, 10 insertions, 86 deletions
diff --git a/js/leibovitz/index.html b/js/leibovitz/index.html
index b760397..44c4d49 100644
--- a/js/leibovitz/index.html
+++ b/js/leibovitz/index.html
@@ -210,7 +210,7 @@
         }
         #settings-container {
             width: 100%;
-            display: flex;
+            display: none;
             flex-direction: column;
             gap: 10px;
             align-items: center;
@@ -220,6 +220,9 @@
             flex-shrink: 0;
             position: relative;
         }
+        #settings-container.visible {
+            display: flex;
+        }
         #offline-status {
             position: absolute;
             top: 10px;
diff --git a/js/leibovitz/leibovitz.js b/js/leibovitz/leibovitz.js
index 769216c..030e7d2 100644
--- a/js/leibovitz/leibovitz.js
+++ b/js/leibovitz/leibovitz.js
@@ -1,5 +1,5 @@
 /**
- * Main application entry point for the Leibovitz camera app.
+ * Main application entry point for the app.
  * Implements a functional architecture with separate managers for each effect.
  * Uses the Observer pattern for state management and effect application.
  * Implements the State pattern for mode management (camera/edit).
@@ -16,7 +16,6 @@ const focusControl = document.getElementById('focus-control');
 const focusSlider = document.getElementById('focus-slider');
 const focusValue = document.getElementById('focus-value');
 const slideControls = document.querySelector('.slide-controls');
-const SETTINGS_KEY = 'leibovitz-settings';
 
 let cameraOn = false;
 let stream = null;
@@ -32,14 +31,17 @@ BlurManager.init();
 BalanceManager.init();
 
 /**
- * Updates visibility of slider controls based on camera/edit mode state
+ * Updates visibility of controls based on camera/edit mode state
  * Uses the State pattern to manage UI visibility
  */
 function updateSliderControlsVisibility() {
+    const settingsContainer = document.getElementById('settings-container');
     if (cameraOn || isEditMode) {
         slideControls.classList.add('visible');
+        settingsContainer.classList.add('visible');
     } else {
         slideControls.classList.remove('visible');
+        settingsContainer.classList.remove('visible');
     }
 }
 
@@ -458,85 +460,4 @@ DitherManager.reset = function() {
     this._modeSelect.value = 'none';
     this._notifyObservers();
     resetEffects();
-};
-
-/**
- * Saves current settings to localStorage
- * Implements the Memento pattern for state persistence
- */
-function saveSettings() {
-    const settings = {
-        blur: BlurManager._currentBlur,
-        contrast: ContrastManager._currentContrast,
-        color: ColorManager._currentColor,
-        balance: BalanceManager._currentBalance,
-        dither: DitherManager._currentMode,
-        blockSize: DitherManager._currentBlockSize
-    };
-    localStorage.setItem(SETTINGS_KEY, JSON.stringify(settings));
-}
-
-/**
- * Loads saved settings from localStorage
- * Implements the Memento pattern for state restoration
- */
-function loadSettings() {
-    const savedSettings = localStorage.getItem(SETTINGS_KEY);
-    if (savedSettings) {
-        const settings = JSON.parse(savedSettings);
-        
-        if (settings.blur !== undefined) {
-            BlurManager._currentBlur = settings.blur;
-            BlurManager._slider.value = settings.blur;
-            BlurManager._value.textContent = `${settings.blur}%`;
-        }
-        
-        if (settings.contrast !== undefined) {
-            ContrastManager._currentContrast = settings.contrast;
-            ContrastManager._slider.value = settings.contrast;
-            document.getElementById('contrast-value').textContent = settings.contrast;
-        }
-        
-        if (settings.color !== undefined) {
-            ColorManager._currentColor = settings.color;
-            ColorManager._colorInput.value = settings.color;
-        }
-        
-        if (settings.balance !== undefined) {
-            BalanceManager._currentBalance = settings.balance;
-            BalanceManager.balanceSlider.value = settings.balance;
-            BalanceManager.balanceValue.textContent = `${settings.balance}K`;
-        }
-        
-        if (settings.dither !== undefined) {
-            DitherManager._currentMode = settings.dither;
-            DitherManager._modeSelect.value = settings.dither;
-        }
-        
-        if (settings.blockSize !== undefined) {
-            DitherManager._currentBlockSize = settings.blockSize;
-            DitherManager._blockSizeSlider.value = settings.blockSize;
-            document.getElementById('block-size-value').textContent = `${settings.blockSize}px`;
-        }
-    }
-}
-
-/**
- * Sets up event listeners for settings changes
- * Implements the Observer pattern for state change detection
- */
-function setupSettingsListeners() {
-    BlurManager._slider.addEventListener('change', saveSettings);
-    ContrastManager._slider.addEventListener('change', saveSettings);
-    ColorManager._colorInput.addEventListener('change', saveSettings);
-    BalanceManager.balanceSlider.addEventListener('change', saveSettings);
-    DitherManager._modeSelect.addEventListener('change', saveSettings);
-    
-    if (DitherManager._blockSizeSlider) {
-        DitherManager._blockSizeSlider.addEventListener('change', saveSettings);
-    }
-}
-
-// Initialize settings
-setupSettingsListeners();
-loadSettings();
\ No newline at end of file
+};
\ No newline at end of file