Merge pull request #4501 from xyflow/background-offset
Background offset
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
'@xyflow/react': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix(background): use offset prop correctly for dots variant
|
||||||
@@ -24,7 +24,7 @@ function BackgroundComponent({
|
|||||||
// only used for lines and cross
|
// only used for lines and cross
|
||||||
size,
|
size,
|
||||||
lineWidth = 1,
|
lineWidth = 1,
|
||||||
offset = 2,
|
offset = 0,
|
||||||
color,
|
color,
|
||||||
bgColor,
|
bgColor,
|
||||||
style,
|
style,
|
||||||
@@ -39,13 +39,11 @@ function BackgroundComponent({
|
|||||||
const gapXY: [number, number] = Array.isArray(gap) ? gap : [gap, gap];
|
const gapXY: [number, number] = Array.isArray(gap) ? gap : [gap, gap];
|
||||||
const scaledGap: [number, number] = [gapXY[0] * transform[2] || 1, gapXY[1] * transform[2] || 1];
|
const scaledGap: [number, number] = [gapXY[0] * transform[2] || 1, gapXY[1] * transform[2] || 1];
|
||||||
const scaledSize = patternSize * transform[2];
|
const scaledSize = patternSize * transform[2];
|
||||||
|
const offsetXY: [number, number] = Array.isArray(offset) ? offset : [offset, offset];
|
||||||
|
const scaledOffset: [number, number] = [offsetXY[0] * transform[2] || 1, offsetXY[1] * transform[2] || 1]
|
||||||
|
|
||||||
const patternDimensions: [number, number] = isCross ? [scaledSize, scaledSize] : scaledGap;
|
const patternDimensions: [number, number] = isCross ? [scaledSize, scaledSize] : scaledGap;
|
||||||
|
|
||||||
const patternOffset = isDots
|
|
||||||
? [scaledSize / offset, scaledSize / offset]
|
|
||||||
: [patternDimensions[0] / offset, patternDimensions[1] / offset];
|
|
||||||
|
|
||||||
const _patternId = `${patternId}${id ? id : ''}`;
|
const _patternId = `${patternId}${id ? id : ''}`;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -69,10 +67,10 @@ function BackgroundComponent({
|
|||||||
width={scaledGap[0]}
|
width={scaledGap[0]}
|
||||||
height={scaledGap[1]}
|
height={scaledGap[1]}
|
||||||
patternUnits="userSpaceOnUse"
|
patternUnits="userSpaceOnUse"
|
||||||
patternTransform={`translate(-${patternOffset[0]},-${patternOffset[1]})`}
|
patternTransform={`translate(-${scaledOffset[0]},-${scaledOffset[1]})`}
|
||||||
>
|
>
|
||||||
{isDots ? (
|
{isDots ? (
|
||||||
<DotPattern radius={scaledSize / offset} className={patternClassName} />
|
<DotPattern radius={scaledSize / 2} className={patternClassName} />
|
||||||
) : (
|
) : (
|
||||||
<LinePattern
|
<LinePattern
|
||||||
dimensions={patternDimensions}
|
dimensions={patternDimensions}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export type BackgroundProps = {
|
|||||||
/** Size of a single pattern element */
|
/** Size of a single pattern element */
|
||||||
size?: number;
|
size?: number;
|
||||||
/** Offset of the pattern */
|
/** Offset of the pattern */
|
||||||
offset?: number;
|
offset?: number | [number, number];
|
||||||
/** Line width of the Line pattern */
|
/** Line width of the Line pattern */
|
||||||
lineWidth?: number;
|
lineWidth?: number;
|
||||||
/** Variant of the pattern
|
/** Variant of the pattern
|
||||||
|
|||||||
Reference in New Issue
Block a user