Files
oops-plugin-framework/dist/api/state.js
dgflash d2c68fbab5 fix(gui): 修复 onBeforeRemove 回调不触发的问题
问题原因:
在 LayerUI.remove() 方法中,state.valid 被提前设置为 false,
导致 LayerUIElement.remove() 中判断 state.valid 时条件不成立,
从而跳过了 onBeforeRemove 回调的触发。

修复方案:
将 state.valid = false 的赋值操作移动到 LayerUIElement.remove()
调用之后执行,确保回调能正常触发。

影响范围:
- 修复通过 oops.gui.remove() 关闭界面时 onBeforeRemove 回调不执行的问题
- 不影响界面缓存和异步加载的僵尸节点防护逻辑
2026-04-01 22:38:10 +08:00

2 lines
1.6 KiB
JavaScript

"use strict";var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var c=(e,t)=>{for(var r in t)p(e,r,{get:t[r],enumerable:!0})},l=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of d(t))!g.call(e,s)&&s!==r&&p(e,s,{get:()=>t[s],enumerable:!(o=u(t,s))||o.enumerable});return e};var v=e=>l(p({},"__esModule",{value:!0}),e);var E={};c(E,{StateAPI:()=>a,getStateAPI:()=>m,resetStateAPI:()=>P});module.exports=v(E);function h(e,t,r){e.statusCode=t,e.setHeader("Content-Type","application/json; charset=utf-8"),e.end(JSON.stringify(r))}var n=class{constructor(){this.projectId="";this.projectPath=""}setProjectPath(t){this.projectPath=t}getProjectPath(){return this.projectPath}setProjectId(t){this.projectId=t}getProjectId(){return this.projectId}validateProjectId(t){return t===this.projectId}getRequestMethod(t){return t.method||"GET"}checkRequest(t,r){let o=this.getMethodName(t),s=this.getApiPath();return o==="GET"&&s===t.url?(this.handleRequest(t,r),!0):!1}getMethodName(t){return(t.method||"GET").toUpperCase()}};var a=class extends n{constructor(){super(...arguments);this.port=8456;this.running=!1}setPort(r){this.port=r}getPort(){return this.port}setRunning(r){this.running=r}isRunning(){return this.running}getState(){return{projectId:this.projectId,projectPath:this.projectPath,port:this.port,running:this.running}}async handleRequest(r,o){let s={ok:!0,state:this.getState()};h(o,200,s)}getApiPath(){return"/api/state"}},i=null;function m(){return i||(i=new a),i}function P(){i=null}0&&(module.exports={StateAPI,getStateAPI,resetStateAPI});