feat(viewport-helpers): return promises

This commit is contained in:
moklick
2024-07-08 13:18:07 +02:00
parent e1d023641b
commit 2503d32a88
15 changed files with 140 additions and 87 deletions
+5 -5
View File
@@ -233,10 +233,10 @@ export const getConnectedEdges = <NodeType extends NodeBase = NodeBase, EdgeType
return edges.filter((edge) => nodeIds.has(edge.source) || nodeIds.has(edge.target));
};
export function fitView<Params extends FitViewParamsBase<NodeBase>, Options extends FitViewOptionsBase<NodeBase>>(
export async function fitView<Params extends FitViewParamsBase<NodeBase>, Options extends FitViewOptionsBase<NodeBase>>(
{ nodeLookup, width, height, panZoom, minZoom, maxZoom }: Params,
options?: Options
) {
): Promise<boolean> {
const filteredNodes: Map<string, InternalNodeBase> = new Map();
const optionNodeIds = options?.nodes ? new Set(options.nodes.map((node) => node.id)) : null;
@@ -260,12 +260,12 @@ export function fitView<Params extends FitViewParamsBase<NodeBase>, Options exte
options?.padding ?? 0.1
);
panZoom.setViewport(viewport, { duration: options?.duration });
await panZoom.setViewport(viewport, { duration: options?.duration });
return true;
return Promise.resolve(true);
}
return false;
return Promise.resolve(false);
}
/**
+5 -5
View File
@@ -325,7 +325,7 @@ export function updateNodeInternals<NodeType extends InternalNodeBase>(
return { changes, updatedInternals };
}
export function panBy({
export async function panBy({
delta,
panZoom,
transform,
@@ -339,12 +339,12 @@ export function panBy({
translateExtent: CoordinateExtent;
width: number;
height: number;
}) {
}): Promise<boolean> {
if (!panZoom || (!delta.x && !delta.y)) {
return false;
return Promise.resolve(false);
}
const nextViewport = panZoom.setViewportConstrained(
const nextViewport = await panZoom.setViewportConstrained(
{
x: transform[0] + delta.x,
y: transform[1] + delta.y,
@@ -361,7 +361,7 @@ export function panBy({
!!nextViewport &&
(nextViewport.x !== transform[0] || nextViewport.y !== transform[1] || nextViewport.k !== transform[2]);
return transformChanged;
return Promise.resolve(transformChanged);
}
export function updateConnectionLookup(connectionLookup: ConnectionLookup, edgeLookup: EdgeLookup, edges: EdgeBase[]) {