|
9 | 9 | * (替代逐体系正查聚合);挂接后可切换目标(先撤旧链再建新链—— |
10 | 10 | * 幂等语义下同 target 多链会堆积);旧版本挂接数据(仅 nodeId) |
11 | 11 | * 自动兼容,UI 显示「问题」徽标(spec §5)。变更经 onChanged 通知。 |
| 12 | + * @ai-context: REQ-276(v0.19.4)浮层右缘钳制:挂体系按钮位于笔记阅读头右端, |
| 13 | + * 面板左锚点向右展开会越过阅读区/窗口右缘造成残缺——改按钮右 |
| 14 | + * 对齐向左展开(与 NoteMoveToGroupMenu 同范式)+ 超高面板内滚动 |
| 15 | + * + 外部点击背板收起(同类浮层统查:分组已右对齐、色板靠左无越缘)。 |
12 | 16 | */ |
13 | 17 | import { useCallback, useEffect, useMemo, useState } from "react"; |
14 | 18 | import { invoke } from "@tauri-apps/api/core"; |
@@ -138,10 +142,24 @@ export default function NoteLinkToSystem({ noteId, onChanged }: Props) { |
138 | 142 | )} |
139 | 143 |
|
140 | 144 | {open && ( |
141 | | - <div |
142 | | - data-testid="note-link-panel" |
143 | | - style={{ position: "absolute", zIndex: 30, marginTop: 30, padding: 10, background: "#fff", border: "1px solid #e5e7eb", borderRadius: 8, boxShadow: "0 4px 16px rgba(0,0,0,0.12)", display: "flex", flexDirection: "column", gap: 6, width: 260 }} |
144 | | - > |
| 145 | + <> |
| 146 | + {/* REQ-276:透明背板(与 NoteMoveToGroupMenu 同范式)——点击外部收起 */} |
| 147 | + <div |
| 148 | + onClick={() => setOpen(false)} |
| 149 | + style={{ position: "fixed", inset: 0, zIndex: 30, background: "transparent" }} |
| 150 | + /> |
| 151 | + <div |
| 152 | + data-testid="note-link-panel" |
| 153 | + style={{ |
| 154 | + position: "absolute", zIndex: 31, top: "calc(100% + 6px)", right: 0, |
| 155 | + padding: 10, background: "#fff", border: "1px solid #e5e7eb", |
| 156 | + borderRadius: 8, boxShadow: "0 4px 16px rgba(0,0,0,0.12)", |
| 157 | + display: "flex", flexDirection: "column", gap: 6, width: 260, |
| 158 | + // REQ-276:右缘钳制(挂体系按钮位于阅读头右端——向左展开不越右缘); |
| 159 | + // 内容超高时面板内滚动(不撑破视口下缘) |
| 160 | + maxHeight: 380, overflowY: "auto", |
| 161 | + }} |
| 162 | + > |
145 | 163 | {domainSystems.length === 0 ? ( |
146 | 164 | <div data-testid="note-link-empty" style={{ fontSize: 12, color: "#9ca3af" }}>暂无体系——请先到「🧠 体系」页创建。</div> |
147 | 165 | ) : ( |
@@ -219,7 +237,8 @@ export default function NoteLinkToSystem({ noteId, onChanged }: Props) { |
219 | 237 | </> |
220 | 238 | )} |
221 | 239 | {err && <div style={{ fontSize: 11, color: "#dc2626" }}>{err}</div>} |
222 | | - </div> |
| 240 | + </div> |
| 241 | + </> |
223 | 242 | )} |
224 | 243 | </span> |
225 | 244 | ); |
|
0 commit comments