R3f shaderMaterial uniform not updating from leva

When I change elevation in leva, the vertexShader isn’t reflecting the change.

import { useRef, useEffect, useMemo } from "react";
import { useThree, useFrame } from "@react-three/fiber";
import { Html, OrbitControls } from "@react-three/drei";
import waterVertexShader from "./shaders/water/vertex.glsl";
import waterFragmentShader from "./shaders/water/fragment.glsl";
import { useControls } from "leva";

export default function Experience() {
  const { time, elevation } = useControls({
    time: 0,
    elevation: {
      value: 0.5,
      min: 0,
      max: 1,
      step: 0.001,
      label: "uBigWavesElevation",
    },
  });

  const ref = useRef();

  const uniforms = useMemo(() => {
    return {
      uBigWavesElevation: { value: elevation },
    };
  }, [elevation]);

  return (
    <>
      <OrbitControls makeDefault />
      <directionalLight position={[1, 2, 3]} intensity={4.5} />
      <ambientLight intensity={1.5} />

      <mesh position-y={-1} rotation-x={-Math.PI * 0.5} scale={1} ref={ref}>
        <planeGeometry args={[2, 2, 128, 128]} />
        <shaderMaterial
          vertexShader={waterVertexShader}
          fragmentShader={waterFragmentShader}
          uniforms={uniforms}
        />
      </mesh>
    </>
  );
}

Have you tried without useMemo? That caches the value I think. Not sure but worth a try to remove it.