perf(renderer): field-level settings subscriptions, file list virtualization, per-panel error boundary
- TerminalView: replace whole-settings subscription with five useShallow field groups; theme writes no longer refit every pane, and unrelated settings writes no longer touch xterm options at all. useResolvedTheme is now a shallow subscription + memoized lookup. TerminalHandle was dead (no caller ever passed a ref) — dropped forwardRef/useImperativeHandle - FilePanel: fixed-row-height (24px) windowing above 200 entries, no new dependency (antd 6 ships @rc-component/virtual-list only transitively); per-row Dropdown kept. NOTE: .sftp-row is now box-sizing:border-box height:24px, keep in sync with ROW_HEIGHT in FilePanel.tsx - PanelErrorBoundary wraps each dockview panel so a pane crash no longer unmounts the whole workspace (i18n: workspace.error.panelTitle/panelRetry) - SshBottomPanel: memo(FilePanel) — sessionId is the only prop and constant - TransferPanel: ref-held Map + version counter replaces per-event Map copies; memo rows skip unchanged entries - MonitorPanel: ResizeObserver/canvas setup runs once, data updates only redraw
This commit is contained in:
1 parent
6c04f0e8c1
commit
9c75cdc7d4
13 files changed
+547
-257
No files matched your search
@@ -56,7 +56,9 @@ const workspace: Record<string, string> = {
|
||||
'workspace.connect.connectingNamed': '正在连接 {name}',
|
||||
'workspace.connect.action': '连接',
|
||||
'workspace.error.title': '界面出现异常',
|
||||
'workspace.error.reload': '重新加载'
|
||||
'workspace.error.reload': '重新加载',
|
||||
'workspace.error.panelTitle': '此面板出现异常',
|
||||
'workspace.error.panelRetry': '重试'
|
||||
}
|
||||
|
||||
export default workspace
|
||||
Reference in new issue
Block a user