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 = () => { setUserData([]); }; 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, i) => (
handleUserDataChange(data.id, newValue)} />
handleRemoveUserData(data.id)} >
))} {/* Add new user data */}
+ Add
Animations
{assets.map((asset, i) => { if (asset.modelUuid !== selectedFloorItem.uuid || !asset.animations) return ( i === 0 && (
Looks like there are no preset animations yet. Stay tuned for future additions!
) ); return asset.animations.map((animation, index) => (
handleAnimationClick(animation)} onMouseEnter={() => setHoveredIndex(index)} onMouseLeave={() => setHoveredIndex(null)} className="animations-list" style={{ background: hoveredIndex === index ? "var(--background-color-button)" : "var(--background-color)", color: hoveredIndex === index ? "var(--text-button-color)" : "", }} > {animation.charAt(0).toUpperCase() + animation.slice(1).toLowerCase()}
)); })}
); }; export default AssetProperties;