auto-save 2026-05-13 12:18 (~3)
This commit is contained in:
@@ -1423,6 +1423,19 @@
|
|||||||
"message": "auto-save 2026-05-13 12:07 (~1)",
|
"message": "auto-save 2026-05-13 12:07 (~1)",
|
||||||
"hash": "9c7044b",
|
"hash": "9c7044b",
|
||||||
"files_changed": 1
|
"files_changed": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ts": "2026-05-13T12:13:17+08:00",
|
||||||
|
"type": "commit",
|
||||||
|
"message": "auto-save 2026-05-13 12:13 (~1)",
|
||||||
|
"hash": "a14995d",
|
||||||
|
"files_changed": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ts": "2026-05-13T04:17:38Z",
|
||||||
|
"type": "session-heartbeat",
|
||||||
|
"message": "Claude 会话活跃 · 最近命令:claude · 3 项未提交变更 · 最近提交:auto-save 2026-05-13 12:13 (~1)",
|
||||||
|
"files_changed": 3
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,9 @@ export const Dashboard = forwardRef<DashboardHandle, Props>(function Dashboard({
|
|||||||
if (base === "keyframe" && data.expandedFrame !== null) return "keyframe:lightbox"
|
if (base === "keyframe" && data.expandedFrame !== null) return "keyframe:lightbox"
|
||||||
return base
|
return base
|
||||||
})()
|
})()
|
||||||
const defaultWidth = drawerKey === "keyframe:lightbox" ? 760 : 400
|
const isLightboxMode = drawerKey === "keyframe:lightbox"
|
||||||
|
const defaultWidth = isLightboxMode ? 760 : 400
|
||||||
|
const minDrawerWidth = isLightboxMode ? 480 : 280
|
||||||
const [drawerWidths, setDrawerWidths] = useState<Record<string, number>>({})
|
const [drawerWidths, setDrawerWidths] = useState<Record<string, number>>({})
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (typeof window === "undefined") return
|
if (typeof window === "undefined") return
|
||||||
@@ -113,7 +115,7 @@ export const Dashboard = forwardRef<DashboardHandle, Props>(function Dashboard({
|
|||||||
const drawerWidth = drawerKey ? (drawerWidths[drawerKey] ?? defaultWidth) : defaultWidth
|
const drawerWidth = drawerKey ? (drawerWidths[drawerKey] ?? defaultWidth) : defaultWidth
|
||||||
const setDrawerWidth = (w: number) => {
|
const setDrawerWidth = (w: number) => {
|
||||||
if (!drawerKey) return
|
if (!drawerKey) return
|
||||||
const clamped = Math.max(280, Math.min(1400, w))
|
const clamped = Math.max(minDrawerWidth, Math.min(1400, w))
|
||||||
setDrawerWidths((prev) => {
|
setDrawerWidths((prev) => {
|
||||||
const next = { ...prev, [drawerKey]: clamped }
|
const next = { ...prev, [drawerKey]: clamped }
|
||||||
try { localStorage.setItem("skg.drawer.widths", JSON.stringify(next)) } catch { /* ignore */ }
|
try { localStorage.setItem("skg.drawer.widths", JSON.stringify(next)) } catch { /* ignore */ }
|
||||||
|
|||||||
@@ -286,7 +286,10 @@ export function FrameLightbox({ jobId, frames, activeIndex, selected, onClose, o
|
|||||||
{/* 主体 — 左:大图 + 清洗 / 选用;右:识别 + 元素清单 */}
|
{/* 主体 — 左:大图 + 清洗 / 选用;右:识别 + 元素清单 */}
|
||||||
<div className="flex gap-3 p-3 overflow-hidden flex-1 min-h-0">
|
<div className="flex gap-3 p-3 overflow-hidden flex-1 min-h-0">
|
||||||
{/* 左侧大图区 */}
|
{/* 左侧大图区 */}
|
||||||
<div className="flex flex-col items-stretch gap-2 flex-shrink-0" style={{ width: 320 }}>
|
<div
|
||||||
|
className="flex flex-col items-stretch gap-2 overflow-y-auto pr-1"
|
||||||
|
style={{ flex: "1 1 320px", minWidth: 200, maxWidth: 420, minHeight: 0 }}
|
||||||
|
>
|
||||||
{/* 上方:主图 + 画框 overlay */}
|
{/* 上方:主图 + 画框 overlay */}
|
||||||
<div
|
<div
|
||||||
ref={imgWrapRef}
|
ref={imgWrapRef}
|
||||||
@@ -487,7 +490,7 @@ export function FrameLightbox({ jobId, frames, activeIndex, selected, onClose, o
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* 右侧识别 + 元素清单 */}
|
{/* 右侧识别 + 元素清单 */}
|
||||||
<div className="flex flex-col gap-2.5 overflow-y-auto flex-1 min-h-0">
|
<div className="flex flex-col gap-2.5 overflow-y-auto flex-1 min-h-0" style={{ minWidth: 240 }}>
|
||||||
{/* 识别 */}
|
{/* 识别 */}
|
||||||
<section>
|
<section>
|
||||||
<div className="flex items-center justify-between mb-2">
|
<div className="flex items-center justify-between mb-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user