feat: center content

This commit is contained in:
Arnošt Pleskot 2023-08-10 23:25:33 +02:00
parent 8321e92368
commit f8cbef5b8a
No known key found for this signature in database
2 changed files with 15 additions and 8 deletions

View File

@ -83,7 +83,7 @@ export const exportToCanvas = async (
exportBackgroundImage: appState.fancyBackgroundImageUrl, exportBackgroundImage: appState.fancyBackgroundImageUrl,
}; };
if (appState.fancyBackgroundImageUrl) { if (exportBackground && appState.fancyBackgroundImageUrl) {
const contentBounds = getCommonBounds(elements); const contentBounds = getCommonBounds(elements);
const updatedRenderProps = await applyFancyBackground({ const updatedRenderProps = await applyFancyBackground({
canvas, canvas,

View File

@ -137,21 +137,28 @@ const addContentBackground = (
const updateRenderConfig = ( const updateRenderConfig = (
renderConfig: RenderConfig, renderConfig: RenderConfig,
canvasDimensions: Dimensions, canvasDimensions: Dimensions,
contentDimesions: Dimensions, contentDimensions: Dimensions,
): { scale: number; renderConfig: RenderConfig } => { ): { scale: number; renderConfig: RenderConfig } => {
const totalPadding = const totalPadding =
FANCY_BG_PADDING + FANCY_BG_BORDER_RADIUS + DEFAULT_EXPORT_PADDING; FANCY_BG_PADDING + FANCY_BG_BORDER_RADIUS + DEFAULT_EXPORT_PADDING;
const scale = getScaleToFit(contentDimensions, {
w: canvasDimensions.w - totalPadding * 2,
h: canvasDimensions.h - totalPadding * 2,
});
const centeredScrollX =
(canvasDimensions.w - contentDimensions.w * scale) / 2;
const centeredScrollY =
(canvasDimensions.h - contentDimensions.h * scale) / 2;
return { return {
renderConfig: { renderConfig: {
...renderConfig, ...renderConfig,
scrollX: renderConfig.scrollX + totalPadding, scrollX: centeredScrollX + renderConfig.scrollX,
scrollY: renderConfig.scrollY + totalPadding, scrollY: centeredScrollY + renderConfig.scrollY,
}, },
scale: getScaleToFit(contentDimesions, { scale,
w: canvasDimensions.w - totalPadding * 2,
h: canvasDimensions.h - totalPadding * 2,
}),
}; };
}; };