本文整理匯總了TypeScript中front-end/state.getWorkspaceById函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript getWorkspaceById函數的具體用法?TypeScript getWorkspaceById怎麽用?TypeScript getWorkspaceById使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了getWorkspaceById函數的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: getWorkspaceById
const centerStage = (state: ApplicationState, workspaceId: string, innerBounds: Bounds, smooth?: boolean, zoomOrZoomToFit?: boolean|number) => {
const workspace = getWorkspaceById(state, workspaceId);
const { stage: { container, translate }} = workspace;
if (!container) return state;
const { width, height } = container.getBoundingClientRect();
const innerSize = getBoundsSize(innerBounds);
const centered = {
left: -innerBounds.left + width / 2 - (innerSize.width) / 2,
top: -innerBounds.top + height / 2 - (innerSize.height) / 2,
};
const scale = typeof zoomOrZoomToFit === "boolean" ? Math.min(
(width - INITIAL_ZOOM_PADDING) / innerSize.width,
(height - INITIAL_ZOOM_PADDING) / innerSize.height
) : typeof zoomOrZoomToFit === "number" ? zoomOrZoomToFit : translate.zoom;
return updateWorkspaceStage(state, workspaceId, {
smooth,
translate: centerTransformZoom({
...centered,
zoom: 1
}, { left: 0, top: 0, right: width, bottom: height }, scale)
});
};
示例2: switch
const stageReducer = (state: ApplicationState, event: BaseEvent) => {
switch(event.type) {
case VISUAL_EDITOR_WHEEL: {
const { workspaceId, metaKey, ctrlKey, deltaX, deltaY, canvasHeight, canvasWidth } = event as StageWheel;
const workspace = getWorkspaceById(state, workspaceId);
if (workspace.stage.fullScreen) {
return state;
}
let translate = getStageTranslate(workspace.stage);
if (metaKey || ctrlKey) {
translate = centerTransformZoom(translate, boundsFromRect({
width: canvasWidth,
height: canvasHeight
}), clamp(translate.zoom + translate.zoom * deltaY / ZOOM_SENSITIVITY, MIN_ZOOM, MAX_ZOOM), workspace.stage.mousePosition);
} else {
translate = {
...translate,
left: translate.left - deltaX,
top: translate.top - deltaY
};
}
return updateWorkspaceStage(state, workspace.$id, { smooth: false, translate });
}
case TOGGLE_TOOLS_SHORTCUT_PRESSED: {
const workspace = getSelectedWorkspace(state);
return updateWorkspaceStage(state, workspace.$id, {
showTools: workspace.stage.showTools == null ? false : !workspace.stage.showTools
})
}
case STAGE_TOOL_EDIT_TEXT_KEY_DOWN: {
const { sourceEvent, nodeId } = event as StageToolEditTextKeyDown;
if (sourceEvent.key === "Escape") {
// const workspace = getSyntheticNodeWorkspace(state, nodeId);
// state = setWorkspaceSelection(state, workspace.$id, getStructReference(getNestedObjectById(nodeId, getNodeArtboard(nodeId, state).document)));
// state = updateWorkspaceStage(state, workspace.$id, {
// secondarySelection: false
// });
}
return state;
}
case RESIZER_MOVED: {
const { point, workspaceId, point: newPoint } = event as ResizerMoved;
const workspace = getSelectedWorkspace(state);
state = updateWorkspaceStage(state, workspace.$id, {
movingOrResizing: true
});
const translate = getStageTranslate(workspace.stage);
const selectionBounds = getWorkspaceSelectionBounds(workspace);
for (const item of getBoundedWorkspaceSelection(workspace)) {
const itemBounds = getWorkspaceItemBounds(item, workspace);
// skip moving window if in full screen mode
if (workspace.stage.fullScreen && workspace.stage.fullScreen.artboardId === item.$id) {
break;
}
const newBounds = roundBounds(scaleInnerBounds(itemBounds, selectionBounds, moveBounds(selectionBounds, newPoint)));
if (item.$type === ARTBOARD) {
state = updateArtboard(state, item.$id, { bounds: newBounds });
}
}
return state;
}
case RESIZER_PATH_MOUSE_MOVED: {
let { workspaceId, anchor, originalBounds, newBounds, sourceEvent } = event as ResizerPathMoved;
const workspace = getSelectedWorkspace(state);
state = updateWorkspaceStage(state, workspace.$id, {
movingOrResizing: true
});
// TODO - possibly use BoundsStruct instead of Bounds since there are cases where bounds prop doesn't exist
const currentBounds = getWorkspaceSelectionBounds(workspace);
const keepAspectRatio = sourceEvent.shiftKey;
const keepCenter = sourceEvent.altKey;
if (keepCenter) {
// newBounds = keepBoundsCenter(newBounds, bounds, anchor);
}
if (keepAspectRatio) {
newBounds = keepBoundsAspectRatio(newBounds, originalBounds, anchor, keepCenter ? { left: 0.5, top: 0.5 } : anchor);
}
//.........這裏部分代碼省略.........