import { Float, useGLTF } from '@react-three/drei'; import { useLoader } from '@react-three/fiber'; import { JSX, useMemo } from 'react'; import { useMediaQuery } from 'react-responsive'; import * as THREE from 'three'; import { DRACOLoader, GLTF, GLTFLoader } from 'three-stdlib'; type GLTFResult = GLTF & { nodes: { ['React-Logo_Material002_0']: THREE.Mesh; }; materials: { ['Material.002']: THREE.MeshStandardMaterial; }; }; export function ReactLogo(props: JSX.IntrinsicElements['group']) { const { nodes, materials } = useLoader( GLTFLoader, '/models/react_logo-processed.glb', (loader) => { const dracoLoader = new DRACOLoader(); dracoLoader.setDecoderPath('/libs/draco/'); loader.setDRACOLoader(dracoLoader); }, ) as unknown as GLTFResult; const isMobile = useMediaQuery({ query: '(max-width: 768px)' }); const position = useMemo(() => { if (isMobile) { return [5, 3, 0] as const; } return [9, 1, 0] as const; }, [isMobile]); return ( ); } useGLTF.preload('/models/react_logo-processed.glb'); export default ReactLogo;