chore(nx-dev): honor prefers-reduced-motion (#27976)
Fixes #27114 (again)
This commit is contained in:
parent
50927c2462
commit
24ddbe7254
@ -1,7 +1,7 @@
|
|||||||
'use client';
|
'use client';
|
||||||
import { ButtonLink, SectionHeading, Strong } from '@nx/nx-dev/ui-common';
|
import { ButtonLink, SectionHeading, Strong } from '@nx/nx-dev/ui-common';
|
||||||
import { ShaderGradient, ShaderGradientCanvas } from 'shadergradient';
|
import { ShaderGradient, ShaderGradientCanvas } from 'shadergradient';
|
||||||
import { BlurFade } from '@nx/nx-dev/ui-animations';
|
import { BlurFade, usePrefersReducedMotion } from '@nx/nx-dev/ui-animations';
|
||||||
import { Theme, useTheme } from '@nx/nx-dev/ui-theme';
|
import { Theme, useTheme } from '@nx/nx-dev/ui-theme';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
@ -141,6 +141,8 @@ export function Hero(): JSX.Element {
|
|||||||
function ShaderGradientElement() {
|
function ShaderGradientElement() {
|
||||||
const [theme] = useTheme();
|
const [theme] = useTheme();
|
||||||
const [displayTheme, setDisplayTheme] = useState<Theme>('system');
|
const [displayTheme, setDisplayTheme] = useState<Theme>('system');
|
||||||
|
const prefersReducedMotion = usePrefersReducedMotion();
|
||||||
|
|
||||||
useIsomorphicLayoutEffect(() => {
|
useIsomorphicLayoutEffect(() => {
|
||||||
const matchMedia: any = window.matchMedia('(prefers-color-scheme: dark)');
|
const matchMedia: any = window.matchMedia('(prefers-color-scheme: dark)');
|
||||||
|
|
||||||
@ -170,6 +172,10 @@ function ShaderGradientElement() {
|
|||||||
};
|
};
|
||||||
}, [theme]);
|
}, [theme]);
|
||||||
|
|
||||||
|
if (prefersReducedMotion) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (displayTheme === 'dark')
|
if (displayTheme === 'dark')
|
||||||
return (
|
return (
|
||||||
<BlurFade
|
<BlurFade
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user