diff --git a/cypress/integration/flow/basic.spec.js b/cypress/integration/flow/basic.spec.js
index 121896d3..39209e42 100644
--- a/cypress/integration/flow/basic.spec.js
+++ b/cypress/integration/flow/basic.spec.js
@@ -13,9 +13,6 @@ describe('Basic Flow Rendering', () => {
it('renders a grid', () => {
cy.get('.react-flow__background');
-
- const gridStroke = Cypress.$('.react-flow__background path').attr('stroke');
- expect(gridStroke).to.equal('#eee');
});
it('selects a node by click', () => {
diff --git a/example/src/Overview/index.js b/example/src/Overview/index.js
index d2247c38..c7e3c64f 100644
--- a/example/src/Overview/index.js
+++ b/example/src/Overview/index.js
@@ -136,7 +136,7 @@ const OverviewFlow = () => {
}}
/>
-
+
);
};
diff --git a/src/additional-components/Background/index.tsx b/src/additional-components/Background/index.tsx
index 86a24a09..c655b544 100644
--- a/src/additional-components/Background/index.tsx
+++ b/src/additional-components/Background/index.tsx
@@ -1,4 +1,4 @@
-import React, { memo, HTMLAttributes } from 'react';
+import React, { memo, useMemo, HTMLAttributes } from 'react';
import cc from 'classcat';
import { useStoreState } from '../../store/hooks';
@@ -21,26 +21,32 @@ const defaultColors = {
const Background = memo(
({ variant = BackgroundVariant.Dots, gap = 24, size = 0.5, color, style, className }: BackgroundProps) => {
- const width = useStoreState((s) => s.width);
- const height = useStoreState((s) => s.height);
const [x, y, scale] = useStoreState((s) => s.transform);
const bgClasses = cc(['react-flow__background', className]);
- const bgColor = color ? color : defaultColors[variant];
const scaledGap = gap * scale;
const xOffset = x % scaledGap;
const yOffset = y % scaledGap;
- const isLines = variant === BackgroundVariant.Lines;
- const path = isLines
- ? createGridLinesPath(width, height, xOffset, yOffset, scaledGap)
- : createGridDotsPath(width, height, xOffset, yOffset, scaledGap, size);
- const fill = isLines ? 'none' : bgColor;
- const stroke = isLines ? bgColor : 'none';
+
+ const bgSvgTile = useMemo(() => {
+ const isLines = variant === BackgroundVariant.Lines;
+ const bgColor = color ? color : defaultColors[variant];
+ const path = isLines ? createGridLinesPath(scaledGap, size, bgColor) : createGridDotsPath(size, bgColor);
+
+ return encodeURIComponent(
+ ``
+ );
+ }, [variant, scaledGap, size, color]);
return (
-
+
);
}
);
diff --git a/src/additional-components/Background/style.css b/src/additional-components/Background/style.css
index b96234b9..9343180d 100644
--- a/src/additional-components/Background/style.css
+++ b/src/additional-components/Background/style.css
@@ -2,4 +2,6 @@
position: absolute;
top: 0;
left: 0;
+ width: 100%;
+ height: 100%;
}
\ No newline at end of file
diff --git a/src/additional-components/Background/utils.ts b/src/additional-components/Background/utils.ts
index cf938870..c0b6d315 100644
--- a/src/additional-components/Background/utils.ts
+++ b/src/additional-components/Background/utils.ts
@@ -1,37 +1,7 @@
-export const createGridLinesPath = (
- width: number,
- height: number,
- xOffset: number,
- yOffset: number,
- gap: number
-): string => {
- const lineCountX = Math.ceil(width / gap) + 1;
- const lineCountY = Math.ceil(height / gap) + 1;
-
- const xValues = Array.from({ length: lineCountX }, (_, i) => `M${i * gap + xOffset} 0 V${height}`);
- const yValues = Array.from({ length: lineCountY }, (_, i) => `M0 ${i * gap + yOffset} H${width}`);
-
- return [...xValues, ...yValues].join(' ');
+export const createGridLinesPath = (scaledGap: number, strokeWidth: number, stroke: string): string => {
+ return ``;
};
-export const createGridDotsPath = (
- width: number,
- height: number,
- xOffset: number,
- yOffset: number,
- gap: number,
- size: number
-): string => {
- const lineCountX = Math.ceil(width / gap) + 1;
- const lineCountY = Math.ceil(height / gap) + 1;
-
- const values = Array.from({ length: lineCountX }, (_, col) => {
- const x = col * gap + xOffset;
- return Array.from({ length: lineCountY }, (_, row) => {
- const y = row * gap + yOffset;
- return `M${x} ${y - size} l${size} ${size} l${-size} ${size} l${-size} ${-size}z`;
- }).join(' ');
- });
-
- return values.join(' ');
+export const createGridDotsPath = (size: number, fill: string): string => {
+ return ``;
};