feat(회사에 올리기 화면): 나무 우클릭 요청 · 요청 중 · 회사 층 「올리기 요청 n」 띠 · 목록 미리 보기 · 승인 · 거절 · 결과 띠 (PLAN 706-1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-31 14:55:46 +09:00
co-authored by Claude Opus 5.5
parent 74352ec6b8
commit f0be3cd766
5 changed files with 296 additions and 4 deletions
@@ -86,6 +86,8 @@ export interface PrecomboOptions {
confirmLeave: () => Promise<boolean>;
onOpen: (sel: Selection | null) => void;
getOpen: () => Selection | null;
/** 문서 줄 덧메뉴(706-1 회사에 올리기 요청) — 없거나 빈 목록이면 메뉴 없음 */
more?: (key: string, name: string) => TreeMenuItem[];
}
export interface PrecomboHandle {
@@ -237,7 +239,8 @@ export function buildPrecomboSection(opt: PrecomboOptions): PrecomboHandle {
const label = row.제목 || row.이름;
const item = { key: row.이름, 열: row.이름, 경로: [...folder, label], 이름: label };
targets.set(id, { kind: "item", item });
return { id, label, tip: row.이름, count: null, run: () => void open(row) };
const menu = () => opt.more?.(row.이름, label) ?? [];
return { id, label, tip: row.이름, count: null, run: () => void open(row), menu };
};
const folderNode = (node: PrecomboFolder): TreeNode => {
const id = folderIdOf(node.path);