auto-save 2026-05-15 19:35 (~3)
This commit is contained in:
@@ -1,18 +1,5 @@
|
|||||||
{
|
{
|
||||||
"entries": [
|
"entries": [
|
||||||
{
|
|
||||||
"files_changed": 4,
|
|
||||||
"hash": "6ff4f59",
|
|
||||||
"message": "auto-save 2026-05-14 03:31 (~4)",
|
|
||||||
"ts": "2026-05-14T03:31:49+08:00",
|
|
||||||
"type": "commit"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"files_changed": 3,
|
|
||||||
"message": "Claude 会话活跃 · 最近命令:claude · 3 项未提交变更 · 最近提交:auto-save 2026-05-14 03:31 (~4)",
|
|
||||||
"ts": "2026-05-13T19:33:12Z",
|
|
||||||
"type": "session-heartbeat"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"files_changed": 5,
|
"files_changed": 5,
|
||||||
"hash": "26a43fc",
|
"hash": "26a43fc",
|
||||||
@@ -3258,6 +3245,19 @@
|
|||||||
"type": "session-heartbeat",
|
"type": "session-heartbeat",
|
||||||
"message": "Codex 会话活跃 · 最近命令:codex · 1 项未提交变更 · 最近提交:auto-save 2026-05-15 19:24 (~4)",
|
"message": "Codex 会话活跃 · 最近命令:codex · 1 项未提交变更 · 最近提交:auto-save 2026-05-15 19:24 (~4)",
|
||||||
"files_changed": 1
|
"files_changed": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ts": "2026-05-15T19:30:19+08:00",
|
||||||
|
"type": "commit",
|
||||||
|
"message": "auto-save 2026-05-15 19:30 (~3)",
|
||||||
|
"hash": "1644460",
|
||||||
|
"files_changed": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ts": "2026-05-15T11:34:50Z",
|
||||||
|
"type": "session-heartbeat",
|
||||||
|
"message": "Codex 会话活跃 · 最近命令:codex · 3 项未提交变更 · 最近提交:auto-save 2026-05-15 19:30 (~3)",
|
||||||
|
"files_changed": 3
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -952,7 +952,7 @@ SubjectAsset {
|
|||||||
</header>
|
</header>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<p><strong>问题:</strong>登录页不应再出现旧版入口文案、流程状态和指标文字;小人独立玻璃框会扩大遮挡面积,网格背景也不需要。</p>
|
<p><strong>问题:</strong>登录页不应再出现旧版入口文案、流程状态和指标文字;小人独立玻璃框会扩大遮挡面积,网格背景也不需要。</p>
|
||||||
<p><strong>改动:</strong><code>web/app/login/page.tsx</code> 将动态角色和登录表单合并进同一个 <code>login-source-auth-panel</code>,删除独立角色框。<code>web/app/globals.css</code> 让浮层容器默认不接收指针事件,只让登录框接收交互;角色区域去掉网格、边框、底部阴影和单独背景。<code>web/components/login/oasis-canvas.tsx</code> 改用 <code>document</code> 捕获阶段监听鼠标移动并转发到 Oasis iframe。</p>
|
<p><strong>改动:</strong><code>web/app/login/page.tsx</code> 将动态角色和登录表单合并进同一个 <code>login-source-auth-panel</code>,删除独立角色框。<code>web/app/globals.css</code> 让浮层容器默认不接收指针事件,只让登录框接收交互;角色区域去掉网格、边框、底部阴影和单独背景。<code>web/components/login/oasis-canvas.tsx</code> 改用 <code>document</code> 捕获阶段监听鼠标移动,并向 Oasis iframe 派发原生 <code>mousemove</code>,让它复用原源码玻璃板覆盖时仍驱动草地的逻辑。</p>
|
||||||
<p><strong>影响:</strong><code>web/app/login/page.tsx</code>、<code>web/components/login/oasis-canvas.tsx</code>、<code>web/app/globals.css</code>、<code>docs/source-analysis.html</code>。</p>
|
<p><strong>影响:</strong><code>web/app/login/page.tsx</code>、<code>web/components/login/oasis-canvas.tsx</code>、<code>web/app/globals.css</code>、<code>docs/source-analysis.html</code>。</p>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
@@ -6,9 +6,32 @@ export function OasisCanvas() {
|
|||||||
const frameRef = useRef<HTMLIFrameElement | null>(null)
|
const frameRef = useRef<HTMLIFrameElement | null>(null)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const dispatchNativeMouseEvent = (type: "mousemove" | "mouseleave", event?: PointerEvent) => {
|
||||||
|
const frameWindow = frameRef.current?.contentWindow
|
||||||
|
if (!frameWindow) return false
|
||||||
|
|
||||||
|
try {
|
||||||
|
const nativeEvent = new frameWindow.MouseEvent(type, {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: false,
|
||||||
|
clientX: event?.clientX ?? 99999,
|
||||||
|
clientY: event?.clientY ?? 99999,
|
||||||
|
screenX: event?.screenX ?? 99999,
|
||||||
|
screenY: event?.screenY ?? 99999,
|
||||||
|
buttons: event?.buttons ?? 0,
|
||||||
|
view: frameWindow,
|
||||||
|
})
|
||||||
|
frameWindow.dispatchEvent(nativeEvent)
|
||||||
|
return true
|
||||||
|
} catch {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const sendPointer = (type: "pointermove" | "pointerleave", event?: PointerEvent) => {
|
const sendPointer = (type: "pointermove" | "pointerleave", event?: PointerEvent) => {
|
||||||
const frameWindow = frameRef.current?.contentWindow
|
const frameWindow = frameRef.current?.contentWindow
|
||||||
if (!frameWindow) return
|
if (!frameWindow) return
|
||||||
|
if (dispatchNativeMouseEvent(type === "pointermove" ? "mousemove" : "mouseleave", event)) return
|
||||||
frameWindow.postMessage(
|
frameWindow.postMessage(
|
||||||
{
|
{
|
||||||
type: `skg-oasis-${type}`,
|
type: `skg-oasis-${type}`,
|
||||||
|
|||||||
Reference in New Issue
Block a user