auto-save 2026-05-14 03:09 (~3)
This commit is contained in:
@@ -2998,6 +2998,19 @@
|
||||
"type": "session-heartbeat",
|
||||
"message": "Claude 会话活跃 · 最近命令:claude · 3 项未提交变更 · 最近提交:auto-save 2026-05-14 02:58 (~6)",
|
||||
"files_changed": 3
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-14T03:04:09+08:00",
|
||||
"type": "commit",
|
||||
"message": "auto-save 2026-05-14 03:03 (~3)",
|
||||
"hash": "3df3ce4",
|
||||
"files_changed": 3
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-13T19:08:49Z",
|
||||
"type": "session-heartbeat",
|
||||
"message": "Codex 会话活跃 · 最近命令:codex · 3 项未提交变更 · 最近提交:auto-save 2026-05-14 03:03 (~3)",
|
||||
"files_changed": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -816,6 +816,18 @@ api/main.py
|
||||
<h2>变更记录</h2>
|
||||
<p>这个记录不是 git log 的替代品。它记录“产品理解发生了什么变化、影响了哪些源码、你以后描述需求时该怎么说”。后续每次改功能都要补一条。</p>
|
||||
<div class="changelog">
|
||||
<article class="change">
|
||||
<header>
|
||||
<h3>2026-05-14 · Hover 大预览尺寸信息增强</h3>
|
||||
<span class="tag violet">Canvas</span>
|
||||
<span class="tag blue">HoverPreview</span>
|
||||
</header>
|
||||
<div class="body">
|
||||
<p><strong>问题:</strong>原始尺寸和 Fit 比例之前是左上角小号单行文字,用户在快速扫缩略图时不够醒目,无法马上感知素材分辨率差异。</p>
|
||||
<p><strong>改动:</strong><code>HoverPreview</code> 左上角改为两层信息徽章:标题固定为“原始尺寸”,主数字用大号等宽字体显示 <code>宽 × 高</code>,旁边保留 <code>Fit</code> 百分比或 <code>1:1 原寸</code> 状态。</p>
|
||||
<p><strong>影响:</strong><code>web/components/nodes/hover-preview.tsx</code>、<code>docs/source-analysis.html</code>。定位和 Fit / 1:1 行为不变,只提升尺寸信息可读性。</p>
|
||||
</div>
|
||||
</article>
|
||||
<article class="change">
|
||||
<header>
|
||||
<h3>2026-05-14 · 删除确认改为页面内分层交互</h3>
|
||||
|
||||
@@ -86,9 +86,10 @@ export function HoverPreview({
|
||||
return Math.min(1, maxWidth / naturalSize.width, maxHeight / naturalSize.height)
|
||||
}, [naturalSize, viewport.height, viewport.width])
|
||||
|
||||
const metadataText = naturalSize
|
||||
? `原始 ${naturalSize.width}×${naturalSize.height} · ${actualSize ? "1:1" : `Fit ${Math.round((fitScale ?? 1) * 100)}%`}`
|
||||
: actualSize ? "1:1" : "Fit"
|
||||
const dimensionText = naturalSize ? `${naturalSize.width} × ${naturalSize.height}` : "读取中"
|
||||
const scaleText = naturalSize
|
||||
? actualSize ? "1:1 原寸" : `Fit ${Math.round((fitScale ?? 1) * 100)}%`
|
||||
: actualSize ? "1:1 原寸" : "Fit"
|
||||
|
||||
const visibilityCls = shown
|
||||
? pinned ? "opacity-100 pointer-events-auto" : "opacity-100 pointer-events-none"
|
||||
@@ -124,8 +125,18 @@ export function HoverPreview({
|
||||
<div className={`relative rounded-lg overflow-hidden border-2 bg-black shadow-2xl ${pinned ? "ring-2 ring-violet-400/70" : ""} ${borderClass}`}
|
||||
style={previewFrameStyle}>
|
||||
{shown && (
|
||||
<div className="absolute left-1.5 top-1.5 z-10 rounded-md bg-black/75 px-2 py-1 text-[10px] font-mono leading-none text-white shadow-lg backdrop-blur">
|
||||
{metadataText}
|
||||
<div className="absolute left-2 top-2 z-10 overflow-hidden rounded-lg border border-white/25 bg-black/88 text-white shadow-[0_10px_30px_rgba(0,0,0,0.42)] backdrop-blur">
|
||||
<div className="border-b border-white/12 bg-white/10 px-2.5 py-1 text-[9.5px] font-semibold leading-none text-white/72">
|
||||
原始尺寸
|
||||
</div>
|
||||
<div className="flex items-baseline gap-2 px-2.5 py-1.5">
|
||||
<span className="font-mono text-[15px] font-bold leading-none text-white">
|
||||
{dimensionText}
|
||||
</span>
|
||||
<span className="rounded bg-violet-500/28 px-1.5 py-0.5 text-[10px] font-semibold leading-none text-violet-100">
|
||||
{scaleText}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{videoSrc ? (
|
||||
|
||||
Reference in New Issue
Block a user