()
| 65 | } |
| 66 | |
| 67 | function onInput() { |
| 68 | setContent((() => { |
| 69 | const term = getSearchTerm(); |
| 70 | if (!term) { |
| 71 | return null |
| 72 | } |
| 73 | if (searchErr) { |
| 74 | return `<h3>Error: ${searchErr}</h3>` |
| 75 | } |
| 76 | if (!search) { |
| 77 | return "<h3>Searching...</h3>" |
| 78 | } |
| 79 | |
| 80 | window.scrollTo({top: 0, left: 0, behavior: 'auto'}); |
| 81 | |
| 82 | const results = search(term); |
| 83 | |
| 84 | let html; |
| 85 | if (results.length === 0) { |
| 86 | html = `No search results for '${escapeHTML(term)}'.` |
| 87 | } else { |
| 88 | html = `<h4>${results.length} search result${results.length > 1 ? "s" : ""} for '${escapeHTML(term)}'.</h4>`; |
| 89 | } |
| 90 | for (let result of results) { |
| 91 | let doc = result.doc; |
| 92 | let url = `${root}${doc.url}`; |
| 93 | html += ` |
| 94 | <div class="search-result"> |
| 95 | [${doc.section}] <a href="${url}">${doc.title}</a> |
| 96 | </div> |
| 97 | `; |
| 98 | |
| 99 | } |
| 100 | return html; |
| 101 | })()); |
| 102 | } |
| 103 | |
| 104 | if (getSearchTerm()) { |
| 105 | initialize(); |
no test coverage detected
searching dependent graphs…