mirror of
https://github.com/hanzoai/next.js.git
synced 2026-09-24 17:00:51 +00:00
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
import { useEffect } from "react";
|
|
import { useFrame } from "@react-three/fiber";
|
|
import { useAnimations, useGLTF } from "@react-three/drei";
|
|
|
|
export default function Bird({ speed, factor, url, ...props }) {
|
|
const { nodes, animations } = useGLTF(url);
|
|
const { ref, mixer } = useAnimations(animations);
|
|
|
|
useEffect(
|
|
() => void mixer.clipAction(animations[0], ref.current).play(),
|
|
[mixer, animations, ref],
|
|
);
|
|
|
|
useFrame((state, delta) => {
|
|
ref.current.rotation.y +=
|
|
Math.sin((delta * factor) / 2) * Math.cos((delta * factor) / 2) * 1.5;
|
|
mixer.update(delta * speed);
|
|
});
|
|
|
|
return (
|
|
<group ref={ref}>
|
|
<scene name="Scene" {...props}>
|
|
<mesh
|
|
name="Object_0"
|
|
morphTargetDictionary={nodes.Object_0.morphTargetDictionary}
|
|
morphTargetInfluences={nodes.Object_0.morphTargetInfluences}
|
|
rotation={[1.5707964611537577, 0, 0]}
|
|
>
|
|
<bufferGeometry attach="geometry" {...nodes.Object_0.geometry} />
|
|
<meshStandardMaterial
|
|
attach="material"
|
|
{...nodes.Object_0.material}
|
|
name="Material_0_COLOR_0"
|
|
/>
|
|
</mesh>
|
|
</scene>
|
|
</group>
|
|
);
|
|
}
|