Skip to content

refactor(editor): unify resizable panes with SplitPane / MultiSplitPane components - #650

Open
boomwwww wants to merge 11 commits into
OpenWebGAL:devfrom
boomwwww:feat/split-pane
Open

refactor(editor): unify resizable panes with SplitPane / MultiSplitPane components#650
boomwwww wants to merge 11 commits into
OpenWebGAL:devfrom
boomwwww:feat/split-pane

Conversation

@boomwwww

Copy link
Copy Markdown
Member

概述

将游戏编辑器与模板编辑器中散落的多套手写拖拽调尺寸实现,统一重构为可复用的 SplitPane(两栏)/ MultiSplitPane(多段)分割面板组件,并接入所有编辑器布局(侧栏、调试器、预览区、资源区)。

背景与动机

此前每个面板的拖拽调宽/调高都是各自实现,存在重复与问题:

原有实现 问题
EditorSidebar 侧栏拖拽 模块级可变变量 + 全局 CSS 变量 --sidebar-width,状态污染、跨实例共享
EditorDebugger 自带整套拖拽逻辑,无法复用
TemplateEditor 的 SideberResizer / SidebarBlockResizer 四套重复实现,维护成本高

改动内容

新增通用组件

  • SplitPane(两栏):水平/垂直、受控(value/onChange)与非受控(defaultSize+persistKey)、
    min/max 钳制且不超容器、fixedPanel、折叠(collapsed)、分隔条样式定制、
    disablePointerOn 防 iframe 穿透、onResize 拖拽结束回调
  • MultiSplitPane(多段):固定段 + 末段 flex、minSizes、受控回调、尺寸持久化(刷新后尺寸保持)

游戏编辑器

  • 侧栏/主区域改为 SplitPane,删除基于 --sidebar-width 全局变量的旧拖拽
  • 侧栏预览区与资源区改为垂直可拖拽;预览用容器查询单位计算最大内接 16:9 盒子,
    任意宽高保持 16:9,变换覆盖层与 iframe 完全对齐
  • 调试器改为受控 SplitPane(collapsed),支持折叠/展开,刷新后高度保持

模板编辑器

  • 侧栏/主区域、预览/编辑区、侧栏三段布局全部改用 SplitPane/MultiSplitPane
  • 移除 store 中的尺寸状态
  • 删除四套重复的 Resizer 实现

测试

  1. 游戏编辑器:拖侧栏宽度、预览/资源区高度、调试器高度,刷新后尺寸均保持
  2. 预览 iframe 任意高度下保持 16:9;变换拖拽调整(EffectEditor)与 iframe 对齐
  3. 模板编辑器:侧栏宽度、预览高度、侧栏三段高度均可调整且持久化(刷新后高度保持)

@MakinoharaShoko MakinoharaShoko left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image 侧边栏的行为不符合预期

@MakinoharaShoko

Copy link
Copy Markdown
Member

Image 侧边栏的行为不符合预期

image 原版 @boomwwww

@boomwwww

boomwwww commented Sep 1, 2026

Copy link
Copy Markdown
Member Author

Image 侧边栏的行为不符合预期

我将它改成了,这个区域的边框长与宽均可拖拽调整大小,而预览窗口始终保持在边框之内中间的位置的模式,我认为这比以前的,只有左右的区域大小可调整,而资源场景区域只能被动适应预览窗口大小的模式更方便

@boomwwww

boomwwww commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

再改动(Editor)

  • 游戏编辑器新增右下角角标拖拽,可同时调整侧栏宽度和预览高度

同步改动(Template Editor)

  • 模板编辑器复用同一套角标组件,左下角角标拖拽
  • sidebarWidth 从 store 中移除(先前已经将 previewHeight 移除)

@boomwwww

boomwwww commented Sep 4, 2026

Copy link
Copy Markdown
Member Author

再改动

  • revert(editor): 移除编辑器角标拖拽与预览/资源分隔条

@boomwwww

boomwwww commented Sep 4, 2026

Copy link
Copy Markdown
Member Author

再改动

  • 修复模板编辑器左侧三个区域滑动条不出现的问题

@boomwwww

boomwwww commented Sep 5, 2026

Copy link
Copy Markdown
Member Author

再改动

  • 修复模板编辑器主区域滑动条bug

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants