import React, { useState, useCallback } from "react"; import { Canvas } from "@react-three/fiber"; import { OrbitControls, Grid } from "@react-three/drei"; import { useStore } from "../store/store.ts"; import { Model3DComponent } from "./Model3D.tsx"; import { CameraController } from "./CameraController.tsx"; import { SceneBackground } from "./SceneBackground.tsx"; interface SceneContentProps { autoRotate: boolean; } const SceneContentInner: React.FC = ({ autoRotate }) => { const models = useStore((state) => state.models); return ( <> {models.map((model) => ( ))} ); }; const SceneContent = React.memo(SceneContentInner); SceneContent.displayName = "SceneContent"; export const Scene: React.FC = () => { const selectModel = useStore((state) => state.selectModel); const [autoRotate, setAutoRotate] = useState(false); const handlePointerMissed = useCallback(() => { selectModel(null); }, [selectModel]); const handleToggleAutoRotate = useCallback(() => { setAutoRotate((prev) => !prev); }, []); return (
); };