Skip to content

Commit e355bfb

Browse files
committed
Merge branch 'main' into 2.0.0-next
2 parents 9bab1c4 + 55a241f commit e355bfb

File tree

12 files changed

+118
-99
lines changed

12 files changed

+118
-99
lines changed

.pkgs/configs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"lint:ts": "tsc --noEmit"
2020
},
2121
"dependencies": {
22-
"@eslint/js": "^9.25.1",
22+
"@eslint/js": "^9.26.0",
2323
"@stylistic/eslint-plugin": "^4.2.0",
2424
"eslint-plugin-de-morgan": "^1.2.1",
2525
"eslint-plugin-function": "^0.0.21",

.pkgs/eslint-plugin-local/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"@eslint-react/kit": "workspace:*",
2727
"@eslint-react/shared": "workspace:*",
2828
"@eslint-react/var": "workspace:*",
29-
"@eslint/js": "^9.25.1",
29+
"@eslint/js": "^9.26.0",
3030
"@stylistic/eslint-plugin": "^4.2.0",
3131
"@typescript-eslint/scope-manager": "^8.31.1",
3232
"@typescript-eslint/type-utils": "^8.31.1",

apps/website/components/ESLintReact.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export function ESLintReact() {
88
<div className="flex flex-col items-center gap-4 m-0 mx-auto p-8 w-fit">
99
<Image alt="logo" height="150" quality={100} src={logo as StaticImageData} width="150" />
1010
<span className="text-2xl">ESLint React</span>
11-
<p className="text-center text-gray-400">
11+
<p className="text-center text-gray-400 pt-4">
1212
A series of composable ESLint rules for React and friends.
1313
</p>
1414
</div>

apps/website/components/EffectLayer.tsx

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,21 @@ function createUniforms(width: number, height: number) {
195195
};
196196
}
197197

198+
function createRenderer(canvas: HTMLCanvasElement, width: number, height: number, dpr = 2) {
199+
return new Renderer({
200+
alpha: true,
201+
antialias: true,
202+
canvas,
203+
depth: false,
204+
dpr,
205+
height,
206+
powerPreference: "high-performance",
207+
premultipliedAlpha: true,
208+
webgl: 2,
209+
width,
210+
});
211+
}
212+
198213
export type EffectLayerProps = PropsWithChildren<{
199214
className?: string;
200215
}>;
@@ -203,6 +218,7 @@ export function EffectLayer({ children, className }: EffectLayerProps) {
203218
const rRaf = useRef<number>(null);
204219
const rRoot = useRef<HTMLDivElement>(null);
205220
const rCanvas = useRef<HTMLCanvasElement>(null);
221+
const isActive = useRef<boolean>(false);
206222

207223
useEffect(() => {
208224
if (rRoot.current == null) return;
@@ -212,18 +228,7 @@ export function EffectLayer({ children, className }: EffectLayerProps) {
212228
const canvas = rCanvas.current;
213229
const rect = root.getBoundingClientRect();
214230
const uniforms = createUniforms(rect.width, rect.height);
215-
const renderer = new Renderer({
216-
alpha: true,
217-
antialias: false,
218-
canvas,
219-
depth: false,
220-
dpr: window.devicePixelRatio,
221-
height: rect.height,
222-
powerPreference: "high-performance",
223-
premultipliedAlpha: true,
224-
webgl: 2,
225-
width: rect.width,
226-
});
231+
const renderer = createRenderer(canvas, rect.width, rect.height, window.devicePixelRatio);
227232

228233
const { gl } = renderer;
229234
const geometry = new Triangle(gl);
@@ -236,27 +241,34 @@ export function EffectLayer({ children, className }: EffectLayerProps) {
236241
const mesh = new Mesh(gl, { geometry, program });
237242

238243
function update(time: number) {
244+
if (!isActive.current) return;
239245
uniforms.uTime.value = time * 0.001;
240246
renderer.render({ scene: mesh });
241247
rRaf.current = requestAnimationFrame(update);
242248
}
243249

250+
function resize(rect: DOMRect) {
251+
if (!isActive.current) return;
252+
uniforms.uResolution.value.set(rect.width, rect.height);
253+
renderer.setSize(rect.width, rect.height);
254+
renderer.render({ scene: mesh });
255+
}
256+
244257
const ro = new ResizeObserver((entries) => {
245-
for (const entry of entries) {
246-
if (entry.target !== root) continue;
247-
const rect = entry.contentRect;
248-
uniforms.uResolution.value.set(rect.width, rect.height);
249-
renderer.setSize(rect.width, rect.height);
250-
renderer.render({ scene: mesh });
251-
return;
252-
}
258+
if (!isActive.current) return;
259+
if (entries.length == null) return;
260+
requestAnimationFrame(() => {
261+
resize(root.getBoundingClientRect());
262+
});
253263
});
254264

255265
ro.observe(root);
256266
rRaf.current = requestAnimationFrame(update);
257267
canvas.style.opacity = "1";
268+
isActive.current = true;
258269

259270
return () => {
271+
isActive.current = false;
260272
canvas.style.opacity = "0";
261273
if (rRaf.current != null) cancelAnimationFrame(rRaf.current);
262274
ro.disconnect();
@@ -296,5 +308,6 @@ const styles = {
296308
"transition-opacity",
297309
"duration",
298310
"ease-[ease-in-out]",
311+
"pointer-events-none",
299312
),
300313
};

apps/website/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"fumadocs-twoslash": "3.1.1",
2121
"fumadocs-typescript": "4.0.3",
2222
"fumadocs-ui": "15.2.12",
23-
"lucide-react": "^0.506.0",
23+
"lucide-react": "^0.507.0",
2424
"next": "^15.3.1",
2525
"next-view-transitions": "^0.3.4",
2626
"ogl": "^1.0.11",
@@ -34,7 +34,7 @@
3434
"@eslint-react/eslint-plugin": "workspace:*",
3535
"@eslint-react/kit": "workspace:*",
3636
"@eslint-react/shared": "workspace:*",
37-
"@eslint/js": "^9.25.1",
37+
"@eslint/js": "^9.26.0",
3838
"@eslint/markdown": "^6.4.0",
3939
"@local/configs": "workspace:*",
4040
"@mdx-js/mdx": "^3.1.0",

examples/next-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"devDependencies": {
1818
"@eslint-react/eslint-plugin": "workspace:*",
1919
"@eslint/config-inspector": "^1.0.2",
20-
"@eslint/js": "^9.25.1",
20+
"@eslint/js": "^9.26.0",
2121
"@next/eslint-plugin-next": "^15.3.1",
2222
"@tsconfig/next": "^2.0.3",
2323
"@tsconfig/node22": "^22.0.1",

examples/vite-react-dom-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"devDependencies": {
1818
"@eslint-react/eslint-plugin": "workspace:*",
1919
"@eslint/config-inspector": "^1.0.2",
20-
"@eslint/js": "^9.25.1",
20+
"@eslint/js": "^9.26.0",
2121
"@tsconfig/node22": "^22.0.1",
2222
"@tsconfig/strictest": "^2.0.5",
2323
"@tsconfig/vite-react": "^3.4.0",

examples/vite-react-dom-js-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"devDependencies": {
1818
"@eslint-react/eslint-plugin": "workspace:*",
1919
"@eslint/config-inspector": "^1.0.2",
20-
"@eslint/js": "^9.25.1",
20+
"@eslint/js": "^9.26.0",
2121
"@types/react": "^19.1.2",
2222
"@types/react-dom": "^19.1.3",
2323
"@vitejs/plugin-react": "^4.4.1",

examples/vite-react-dom-js-with-babel-eslint-parser-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"@babel/preset-env": "^7.27.1",
2121
"@babel/preset-react": "^7.27.1",
2222
"@eslint/config-inspector": "^1.0.2",
23-
"@eslint/js": "^9.25.1",
23+
"@eslint/js": "^9.26.0",
2424
"@types/babel__core": "~7.20.5",
2525
"@types/babel__preset-env": "~7.10.0",
2626
"@types/react": "^19.1.2",

examples/vite-react-dom-with-ts-blank-eslint-parser-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"@eslint-react/kit": "workspace:*",
2020
"@eslint-react/shared": "workspace:*",
2121
"@eslint/config-inspector": "^1.0.2",
22-
"@eslint/js": "^9.25.1",
22+
"@eslint/js": "^9.26.0",
2323
"@tsconfig/node22": "^22.0.1",
2424
"@tsconfig/strictest": "^2.0.5",
2525
"@tsconfig/vite-react": "^3.4.0",

0 commit comments

Comments
 (0)