silverwind
2ecee0bb0a
Refactor search-box module to await-style chooseFromApi
...
Move web_src/js/modules/fomantic/search.ts to web_src/js/modules/search.ts
(no Fomantic dependency anymore). Replace the imperative
initSearchBox(el, opts) with chooseFromApi(el, url, parse) that returns
a Promise<SearchResult> resolving with the user's chosen item; callers
loop with `while (box.isConnected) { const pick = await ...; ... }` and
own writing back to whatever input/state they manage.
Cleanup is via a single AbortController whose signal is passed to all
listeners; the in-flight fetch has its own controller so a new keystroke
can cancel just the request without tearing down listeners.
Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
2026-04-26 21:05:36 +02:00
..
2026-04-24 16:02:37 +08:00
2026-04-26 21:05:36 +02:00
2026-03-29 10:24:30 +00:00
2026-04-24 16:02:37 +08:00
2026-03-01 09:11:25 +00:00
2026-03-29 10:24:30 +00:00
2026-03-29 10:24:30 +00:00
2026-03-21 15:39:47 -07:00
2025-07-14 15:20:17 -07:00
2026-04-24 16:02:37 +08:00
2026-04-26 16:37:03 +00:00
2026-04-26 16:37:03 +00:00
2026-02-08 14:39:09 +08:00
2026-01-24 11:30:47 +00:00
2026-01-24 11:30:47 +00:00
2025-12-03 02:13:16 +00:00
2026-04-24 16:02:37 +08:00
2026-03-29 10:24:30 +00:00
2025-12-03 02:13:16 +00:00
2026-04-20 07:22:05 +00:00
2025-07-01 21:44:05 +08:00
2026-04-20 07:22:05 +00:00
2026-03-29 10:24:30 +00:00
2026-04-24 16:02:37 +08:00
2026-02-27 16:39:26 +00:00
2026-02-22 22:56:33 +00:00
2026-04-15 17:26:26 +00:00
2025-12-03 02:13:16 +00:00
2025-09-11 01:50:17 +02:00
2026-03-23 07:49:25 +00:00
2026-03-29 10:24:30 +00:00
2026-04-23 13:58:31 +00:00
2026-04-23 23:33:41 +00:00
2026-04-24 16:02:37 +08:00
2025-12-03 02:13:16 +00:00
2025-12-03 02:13:16 +00:00
2026-04-20 07:22:05 +00:00
2026-04-13 18:53:55 +00:00
2026-04-20 07:22:05 +00:00
2026-04-24 16:02:37 +08:00
2026-03-29 10:24:30 +00:00
2025-12-03 02:13:16 +00:00
2025-12-03 02:13:16 +00:00
2026-04-24 16:02:37 +08:00
2026-04-20 07:22:05 +00:00
2026-04-20 07:22:05 +00:00
2026-04-19 17:39:40 +02:00
2026-03-31 10:03:52 +08:00
2026-04-20 07:22:05 +00:00
2026-03-31 10:03:52 +08:00
2026-03-31 10:03:52 +08:00
2026-04-24 16:02:37 +08:00
2025-12-03 02:13:16 +00:00
2025-12-03 02:13:16 +00:00
2025-12-03 02:13:16 +00:00
2025-12-03 02:13:16 +00:00
2025-12-03 02:13:16 +00:00
2026-04-24 16:02:37 +08:00
2025-12-17 02:01:19 +00:00
2026-04-24 16:02:37 +08:00
2026-03-23 07:49:25 +00:00
2026-03-30 16:17:16 +00:00
2026-04-20 07:22:05 +00:00
2026-04-26 21:05:36 +02:00
2025-12-03 02:13:16 +00:00
2025-12-03 02:13:16 +00:00
2025-12-03 02:13:16 +00:00
2025-12-03 02:13:16 +00:00
2026-03-27 11:49:11 +01:00
2025-12-03 02:13:16 +00:00
2026-04-20 22:32:45 +00:00
2026-04-20 07:22:05 +00:00
2026-04-01 12:50:57 +00:00
2025-12-03 02:13:16 +00:00