Use existing event delegation with submit subscription for history tracking

This commit is contained in:
MareStare 2025-03-14 22:48:21 +00:00
parent c15e082b97
commit 3c2a3e956a

View file

@ -2,6 +2,7 @@ import { HistorySuggestion } from '../../utils/suggestions';
import { InputHistory } from './history'; import { InputHistory } from './history';
import { HistoryStore } from './store'; import { HistoryStore } from './store';
import { AutocompletableInput } from '../input'; import { AutocompletableInput } from '../input';
import { delegate } from 'utils/events';
/** /**
* Stores a set of histories identified by their unique IDs. * Stores a set of histories identified by their unique IDs.
@ -38,20 +39,15 @@ export function listen() {
histories.load(input.historyId); histories.load(input.historyId);
}); });
document.addEventListener('submit', event => { delegate(document, 'submit', {
if (!(event.target instanceof HTMLFormElement)) { '[data-autocomplete-history-id]'(_event, target) {
return; const input = AutocompletableInput.fromElement(target);
} if (!input || !input.hasHistory()) {
return;
}
const input = [...event.target.elements] histories.load(input.historyId).write(input.snapshot.trimmedValue);
.map(elem => AutocompletableInput.fromElement(elem)) },
.find(it => it !== null && it.hasHistory());
if (!input) {
return;
}
histories.load(input.historyId).write(input.snapshot.trimmedValue);
}); });
} }