fix(pwa): drop stale parts-suggestion responses to stop input self-erasing
В CreateRepairPage queryPartSuggestions после await перезаписывал
partsDraft.name значением q из момента старта запроса. При быстром вводе
("К" → "Ке" → "Кеп" → "Кепу") поздно вернувшийся ответ для "К" откатывал
поле обратно на "К" — пользователи это видели как «текст частично сам
стирается». Делаем функциональный setState и роняем ответ если name уже
другой. EditRepairPage не задет (там корректный паттерн).
This commit is contained in:
@@ -259,7 +259,14 @@ export default function CreateRepairPage() {
|
||||
setPartsDraft({ name: q, suggestions: [] });
|
||||
if (!q.trim()) return;
|
||||
const list = await suggestParts(q);
|
||||
setPartsDraft({ name: q, suggestions: list.map((s) => s.name) });
|
||||
// У43 race-fix: пока запрос для "К" летел, юзер дописал до "Кепу" — поздний
|
||||
// ответ не должен перезаписывать .name старым значением (это и есть
|
||||
// «текст частично сам стирается»). Применяем suggestions только если
|
||||
// ввод не менялся; иначе тихо роняем ответ.
|
||||
setPartsDraft((prev) => {
|
||||
if (prev.name !== q) return prev;
|
||||
return { name: q, suggestions: list.map((s) => s.name) };
|
||||
});
|
||||
};
|
||||
|
||||
const addPart = (name: string) => {
|
||||
|
||||
Reference in New Issue
Block a user