mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-22 20:46:38 +08:00
fix: connector label editing (#12282)
Fixes [BS-3373](https://linear.app/affine-design/issue/BS-3373/connector%E7%9A%84%E5%8F%8C%E5%87%BB%E6%B7%BB%E5%8A%A0note%E8%A1%8C%E4%B8%BA%E5%8F%97%E5%88%B0%E4%BA%86%E8%A6%86%E7%9B%96%E8%8C%83%E5%9B%B4%E7%9A%84%E5%BD%B1%E5%93%8D) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Connector label elements now include identity and creator metadata. - **Bug Fixes** - Improved hit-testing for pointer interactions, resulting in more accurate detection of hovered elements. - **Refactor** - Enhanced internal comparison logic for elements, improving sorting and ordering consistency. - Strengthened type definitions for search filters, improving result accuracy and clarity. - **Tests** - Added end-to-end tests to verify correct label entry and retrieval for multiple connectors. - Introduced utility functions to fetch connector labels and improved connector creation in test actions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -65,6 +65,14 @@ const typeFilters = {
|
||||
model instanceof GfxLocalElementModel,
|
||||
};
|
||||
|
||||
export type BuiltInFilterModelMap = {
|
||||
block: GfxBlockElementModel;
|
||||
canvas: GfxPrimitiveElementModel;
|
||||
local: GfxLocalElementModel;
|
||||
};
|
||||
|
||||
export type BuiltInFilterType = keyof typeof typeFilters;
|
||||
|
||||
type FilterFunc = (model: GfxModel | GfxLocalElementModel) => boolean;
|
||||
|
||||
export class GridManager extends GfxExtension {
|
||||
@@ -280,7 +288,7 @@ export class GridManager extends GfxExtension {
|
||||
* @param bound
|
||||
* @param options
|
||||
*/
|
||||
search<T extends keyof typeof typeFilters>(
|
||||
search<T extends BuiltInFilterType = 'canvas' | 'block'>(
|
||||
bound: IBound,
|
||||
options?: {
|
||||
/**
|
||||
@@ -297,16 +305,16 @@ export class GridManager extends GfxExtension {
|
||||
*/
|
||||
filter?: (T | FilterFunc)[] | FilterFunc;
|
||||
}
|
||||
): T extends 'local'[] ? (GfxModel | GfxLocalElementModel)[] : GfxModel[];
|
||||
search<T extends keyof typeof typeFilters>(
|
||||
): BuiltInFilterModelMap[T][];
|
||||
search<T extends BuiltInFilterType = 'canvas' | 'block'>(
|
||||
bound: IBound,
|
||||
options: {
|
||||
strict?: boolean | undefined;
|
||||
useSet: true;
|
||||
filter?: (T | FilterFunc)[] | FilterFunc;
|
||||
}
|
||||
): T extends 'local'[] ? Set<GfxModel | GfxLocalElementModel> : Set<GfxModel>;
|
||||
search<T extends keyof typeof typeFilters>(
|
||||
): Set<BuiltInFilterModelMap[T]>;
|
||||
search<T extends BuiltInFilterType = 'canvas' | 'block'>(
|
||||
bound: IBound,
|
||||
options: {
|
||||
strict?: boolean;
|
||||
|
||||
Reference in New Issue
Block a user