import React, { useState } from "react"; import InputToggle from "../../../ui/inputs/InputToggle"; import InputWithDropDown from "../../../ui/inputs/InputWithDropDown"; import { RemoveIcon } from "../../../icons/ExportCommonIcons"; import PositionInput from "../customInput/PositionInputs"; import RotationInput from "../customInput/RotationInput"; import { useSelectedFloorItem, useObjectPosition, useObjectRotation } from "../../../../store/builder/store"; import { useSceneContext } from "../../../../modules/scene/sceneContext"; import { useBuilderStore } from "../../../../store/builder/useBuilderStore"; interface UserData { id: number; label: string; value: string; } const AssetProperties: React.FC = () => { const [userData, setUserData] = useState([]); const { selectedFloorItem } = useSelectedFloorItem(); const { objectPosition } = useObjectPosition(); const { objectRotation } = useObjectRotation(); const { assetStore } = useSceneContext(); const { assets, setCurrentAnimation } = assetStore(); const { loopAnimation } = useBuilderStore(); const [hoveredIndex, setHoveredIndex] = useState(null); const handleAddUserData = () => { }; const handleUserDataChange = (id: number, newValue: string) => { }; const handleRemoveUserData = (id: number) => { }; const handleAnimationClick = (animation: string) => { if (selectedFloorItem) { setCurrentAnimation(selectedFloorItem.uuid, animation, true, loopAnimation, true); } } if (!selectedFloorItem) return null; return (
{/* Name */}
{selectedFloorItem.userData.modelName}
{objectPosition && { }} value1={parseFloat(objectPosition.x.toFixed(5))} value2={parseFloat(objectPosition.z.toFixed(5))} /> } {objectRotation && { }} value={parseFloat(objectRotation.y.toFixed(5))} /> }
Render settings
User Data
{userData.map((data) => (
handleUserDataChange(data.id, newValue)} />
handleRemoveUserData(data.id)} >
))} {/* Add new user data */}
+ Add
{selectedFloorItem.uuid &&
Animations
} {assets.map((asset) => (
{asset.modelUuid === selectedFloorItem.uuid && asset.animations && asset.animations.length > 0 && asset.animations.map((animation, index) => (
handleAnimationClick(animation)} onMouseEnter={() => setHoveredIndex(index)} onMouseLeave={() => setHoveredIndex(null)} style={{ height: "20px", width: "100%", borderRadius: "5px", background: hoveredIndex === index ? "#7b4cd3" : "transparent", }} > {animation.charAt(0).toUpperCase() + animation.slice(1).toLowerCase()}
))}
))}
); }; export default AssetProperties;