fix(editor): incorrect z-index in dom renderer (#13465)

#### PR Dependency Tree


* **PR #13464**
  * **PR #13465** 👈
    * **PR #13471**
      * **PR #13472**
        * **PR #13473**

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved stacking order across canvas elements (shapes, connectors,
brush, highlighter), reducing unexpected overlap.
* Corrected z-index application for placeholders and fully rendered
elements to ensure consistent layering during edits.
* **Refactor**
* Centralized z-index handling for canvas elements to provide
predictable, uniform layering behavior across the app.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
L-Sun
2025-08-14 11:10:32 +08:00
committed by GitHub
parent aa052096c1
commit 66c2bf3151
8 changed files with 13 additions and 23 deletions

View File

@@ -57,7 +57,7 @@ export type CanvasLayer = BaseLayer<GfxPrimitiveElementModel> & {
type: 'canvas';
/**
* The z-index of canvas layer.
* The z-index of the first element in this canvas layer.
*
* A canvas layer renders all the elements in a single canvas,
* this property is used to render the canvas with correct z-index.
@@ -165,8 +165,7 @@ export class LayerManager extends GfxExtension {
];
curLayer.zIndex = currentCSSZindex;
layers.push(curLayer as LayerManager['layers'][number]);
currentCSSZindex +=
curLayer.type === 'block' ? curLayer.elements.length : 1;
currentCSSZindex += curLayer.elements.length;
}
};
const addLayer = (type: 'canvas' | 'block') => {

View File

@@ -12,11 +12,7 @@ import type { SurfaceBlockModel } from '../gfx/model/surface/surface-model.js';
export function getLayerEndZIndex(layers: Layer[], layerIndex: number) {
const layer = layers[layerIndex];
return layer
? layer.type === 'block'
? layer.zIndex + layer.elements.length - 1
: layer.zIndex
: 0;
return layer ? layer.zIndex + layer.elements.length - 1 : 0;
}
export function updateLayersZIndex(layers: Layer[], startIdx: number) {
@@ -27,7 +23,7 @@ export function updateLayersZIndex(layers: Layer[], startIdx: number) {
const curLayer = layers[i];
curLayer.zIndex = curIndex;
curIndex += curLayer.type === 'block' ? curLayer.elements.length : 1;
curIndex += curLayer.elements.length;
}
}