feat(M01): 화면 부품 공용화 — 드롭다운·찾기 칸·단추·확인창을 공용 템플릿으로 · 재료 컨테이너 차례
- createSelectField 에 선택 인자 더함(compact · ariaLabel · setOptions) — 기본 동작 그대로 - 인력 2단 거름 · 로직 편집 고르기 · 계산 입력 · 요소 찾기 창 그룹 select 를 공용으로 · m01-side__select 걷음 - 찾기 칸은 createInputField · 표 칸·모달 단추는 createButton · 버리기 확인은 showConfirmDialog - 재료 컨테이너 = 자재품목 · 유가 · 품셈재료 차례 · 안 쓰는 조달 문구 걷음 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
This commit is contained in:
@@ -8,7 +8,13 @@
|
||||
* ========================================================================== */
|
||||
|
||||
import "@ui/ui_template_workflow_layout.css";
|
||||
import { createButton, el, showToast } from "@ui/ui_template_elements";
|
||||
import {
|
||||
createButton,
|
||||
createInputField,
|
||||
el,
|
||||
showConfirmDialog,
|
||||
showToast,
|
||||
} from "@ui/ui_template_elements";
|
||||
import { t as L } from "@ui/ui_template_locale";
|
||||
import { createWorkflowOverlays } from "@ui/ui_template_overlay";
|
||||
import { ROUTES } from "@config/config_frontend";
|
||||
@@ -42,10 +48,8 @@ function buildPage(): HTMLElement {
|
||||
|
||||
/* --- 우측: 머리(제목·찾기·저장) + 알림 + 본문 --- */
|
||||
const title = el("h2", { className: "m01-master__title", text: L("M01_PickFile") });
|
||||
const search = el("input", {
|
||||
className: "m01-master__search",
|
||||
attrs: { type: "search", placeholder: L("M01_Search") },
|
||||
});
|
||||
const searchField = createInputField({ type: "search", placeholder: L("M01_Search") });
|
||||
const search = searchField.input;
|
||||
const summary = el("span", { className: "m01-master__summary" });
|
||||
const save = createButton({ label: L("M01_Save"), variant: "filled" });
|
||||
const drop = createButton({ label: L("M01_Discard"), variant: "ghost" });
|
||||
@@ -53,7 +57,7 @@ function buildPage(): HTMLElement {
|
||||
const body = el("div", { className: "m01-master__body" });
|
||||
const head = el("div", {
|
||||
className: "m01-master__head",
|
||||
children: [title, search, summary, drop, save],
|
||||
children: [title, searchField.root, summary, drop, save],
|
||||
});
|
||||
const logicHost = el("div", { className: "m01-master__logic", attrs: { hidden: "" } });
|
||||
const elementView = el("div", {
|
||||
@@ -98,8 +102,8 @@ function buildPage(): HTMLElement {
|
||||
}, 300);
|
||||
});
|
||||
|
||||
drop.addEventListener("click", () => {
|
||||
if (!window.confirm(L("M01_DiscardConfirm"))) return;
|
||||
drop.addEventListener("click", async () => {
|
||||
if (!(await showConfirmDialog(L("M01_DiscardConfirm")))) return;
|
||||
discard();
|
||||
showNotice([]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user