fix(829-1): 모바일 찾기 칸 되풀이 다시 그리기 — 늦은 옛 응답 덮어쓰기 막음 · 한글 조합 중 검색 보류 · 키보드로 높이만 바뀐 뒤 줄 수 다시 재기 거름
- 원인 셋: ① 목록 불러오기 응답 순서 가드 없음(Rows · Machine · Tables · 복사 고르기 · 고를 재료 판) → 느린 회선에서 앞 글자 응답이 뒤 글자 목록을 덮음 ② 글자 칸 조합마다 input 이 검색을 걸음 ③ 키보드가 뜨고 닫을 때마다 watchFit 이 줄 수를 다시 재 목록을 다시 받아 그림 · 첫 그림 어림(6)과 잰 값(5) 어긋남으로 한 글자에 두 번 받음 - 공용 고침: ui_template_pager(holdForKeyboard · 직전 잰 줄 수 어림) · device_context(찾기 칸 조합 보류) · M01 Rows · Machine · Tables · Page · Pick · LogicLab_Copy - 시험: test_709_pager_fit 에 holdForKeyboard 1 건 더함 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -49,10 +49,12 @@ export function renderTables(
|
||||
let usage = pick.view?.usage ?? "";
|
||||
let size = guessRows(host, FILTER_H); // 화면 높이로 셈 — 그린 뒤 다시 재서 어긋나면 바로잡음
|
||||
let at = 0; // 목록을 보고 있는 쪽(0 = 표 하나를 보는 중)
|
||||
let gen = 0; // 늦게 온 옛 응답이 새 목록을 덮지 않게(829-1)
|
||||
const list = (page = pick.view?.page ?? 1): void => {
|
||||
stop();
|
||||
stop = (): void => {};
|
||||
at = page;
|
||||
const mine = ++gen;
|
||||
void showList(
|
||||
host,
|
||||
pick,
|
||||
@@ -70,6 +72,7 @@ export function renderTables(
|
||||
saveView(pick.group, { usage, page: 1 });
|
||||
list(1);
|
||||
},
|
||||
() => mine !== gen,
|
||||
).then(() => fit.ask());
|
||||
};
|
||||
const fit = watchFit(
|
||||
@@ -85,6 +88,7 @@ export function renderTables(
|
||||
list();
|
||||
const off = onDraftChange(() => host.querySelector(".m01-master__tables") && markChanged(host));
|
||||
return () => {
|
||||
gen++;
|
||||
fit.stop();
|
||||
stop();
|
||||
off();
|
||||
@@ -109,10 +113,12 @@ async function showList(
|
||||
goPage: (page: number) => void,
|
||||
open: (file: string, key: string) => void,
|
||||
onUsageChange: (usage: string) => void,
|
||||
stale: () => boolean,
|
||||
): Promise<void> {
|
||||
let got: { total: number; tables: TableHead[] };
|
||||
try {
|
||||
got = await fetchTables(pick.group, pick.sub, pick.detail, q, page, size, usage);
|
||||
if (stale()) return;
|
||||
} catch (error) {
|
||||
showToast(error instanceof Error ? error.message : L("M01_LoadFailed"), "error");
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user