MCPcopy Create free account
hub / github.com/nlweb-ai/NLWeb / bindEvents

Method bindEvents

static/chat-interface-unified.js:143–185  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

141 }
142
143 bindEvents() {
144 // Single delegation pattern for all events
145 document.addEventListener('click', this.handleClick.bind(this));
146 document.addEventListener('keydown', this.handleKeydown.bind(this));
147
148 // Close dropdowns on outside click
149 document.addEventListener('click', (e) => {
150 if (!e.target.closest('.mode-dropdown, #mode-selector-icon')) {
151 document.getElementById('mode-dropdown')?.classList.remove('show');
152 }
153 });
154
155 // Sidebar toggle
156 const sidebarToggle = document.getElementById('sidebar-toggle');
157 const sidebar = document.getElementById('sidebar');
158 const mobileMenuToggle = document.getElementById('mobile-menu-toggle');
159
160 if (sidebarToggle && sidebar) {
161 // Restore sidebar state from localStorage
162 const isCollapsed = localStorage.getItem('nlweb-sidebar-collapsed') === 'true';
163 if (isCollapsed) {
164 sidebar.classList.add('collapsed');
165 sidebarToggle.classList.add('sidebar-collapsed');
166 }
167
168 // Handle sidebar toggle click
169 sidebarToggle.addEventListener('click', () => {
170 sidebar.classList.toggle('collapsed');
171 sidebarToggle.classList.toggle('sidebar-collapsed');
172
173 // Save state to localStorage
174 const isCollapsed = sidebar.classList.contains('collapsed');
175 localStorage.setItem('nlweb-sidebar-collapsed', isCollapsed);
176 });
177 }
178
179 // Mobile menu toggle
180 if (mobileMenuToggle && sidebar) {
181 mobileMenuToggle.addEventListener('click', () => {
182 sidebar.classList.toggle('open');
183 });
184 }
185 }
186
187 handleUrlAutoQuery() {
188 // Check if there's both a site and query parameter to auto-send

Callers 1

initMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected