Skip to content

Commit a363e12

Browse files
committed
fix lupe
1 parent eaa84ce commit a363e12

File tree

1 file changed

+25
-13
lines changed

1 file changed

+25
-13
lines changed

theme/ht_searcher.js

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -177,11 +177,32 @@
177177
const listOut = document.getElementById('searchresults-outer');
178178
const header = document.getElementById('searchresults-header');
179179
const icon = document.getElementById('search-toggle');
180-
181-
const READY_ICON = icon.innerHTML;
180+
181+
if(!wrap || !bar || !list || !listOut || !header || !icon) {
182+
console.error('[HT Search] Missing DOM elements:', {wrap:!!wrap, bar:!!bar, list:!!list, listOut:!!listOut, header:!!header, icon:!!icon});
183+
return;
184+
}
185+
186+
/* Clear icon content and use emoji states directly */
182187
icon.textContent = '⏳';
183188
icon.setAttribute('aria-label','Loading search …');
184-
icon.setAttribute('title','Search is loading, please wait...');
189+
icon.setAttribute('title','Search is loading, please wait...');
190+
191+
const setIconState = state => {
192+
if(state === 'ready'){
193+
icon.textContent = '🔍';
194+
icon.setAttribute('aria-label','Open search (S)');
195+
icon.removeAttribute('title');
196+
} else if(state === 'error'){
197+
icon.textContent = '❌';
198+
icon.setAttribute('aria-label','Search unavailable');
199+
icon.setAttribute('title','Search is unavailable');
200+
} else {
201+
icon.textContent = '⏳';
202+
icon.setAttribute('aria-label','Loading search …');
203+
icon.setAttribute('title','Search is loading, please wait...');
204+
}
205+
};
185206

186207

187208
const HOT=83, ESC=27, DOWN=40, UP=38, ENTER=13;
@@ -240,16 +261,7 @@
240261
/* ───────────── worker messages ───────────── */
241262
worker.onmessage = ({data}) => {
242263
if(data && data.ready!==undefined){
243-
if(data.ready){
244-
icon.innerHTML=READY_ICON;
245-
icon.setAttribute('aria-label','Open search (S)');
246-
icon.removeAttribute('title');
247-
}
248-
else {
249-
icon.textContent='❌';
250-
icon.setAttribute('aria-label','Search unavailable');
251-
icon.setAttribute('title','Search is unavailable');
252-
}
264+
setIconState(data.ready ? 'ready' : 'error');
253265
return;
254266
}
255267
const docs=data, q=bar.value.trim(), terms=q.split(/\s+/).filter(Boolean);

0 commit comments

Comments
 (0)