Files
SamPhillemon e3688fbd94 updated the example of with-three-js to utilize the App Router (#70287)
This PR updates the with-three-js example to use the App Router. Here
are the changes that have been made:

- Renamed the pages folder to the app folder.
- Updated the routing for `/`, `/birds` & `/boxes` files to align with
the App Router.
- Added the `layout.tsx` & `tsconfig.json` file as part of the App
Router.
- Updated the package.json file.

The following actions were performed as part of this PR:

- Ran `pnpm prettier-check `with no issues found.
- Executed the `pnpm check-examples` script.

CC: @samcx

---------

Co-authored-by: samcx <sam@vercel.com>
2024-09-20 19:30:06 +00:00

30 lines
778 B
JavaScript

import { useRef, useState } from "react";
import { useFrame } from "@react-three/fiber";
import { Box as NativeBox } from "@react-three/drei";
export default function Box(props) {
const mesh = useRef();
const [hovered, setHover] = useState(false);
const [active, setActive] = useState(false);
useFrame(() => (mesh.current.rotation.x = mesh.current.rotation.y += 0.01));
return (
<NativeBox
args={[1, 1, 1]}
{...props}
ref={mesh}
scale={active ? [6, 6, 6] : [5, 5, 5]}
onClick={() => setActive(!active)}
onPointerOver={() => setHover(true)}
onPointerOut={() => setHover(false)}
>
<meshStandardMaterial
attach="material"
color={hovered ? "#2b6c76" : "#720b23"}
/>
</NativeBox>
);
}