integrated asset properties in builder

This commit is contained in:
Poovizhi99 2025-03-29 17:46:47 +05:30
parent 661fec1908
commit 9fb0b78e45
5 changed files with 71 additions and 32 deletions

View File

@ -12,7 +12,6 @@ const Header: React.FC = () => {
const guestUsers: ActiveUser[] = activeUsers.filter( const guestUsers: ActiveUser[] = activeUsers.filter(
(user: ActiveUser) => user.userName !== userName (user: ActiveUser) => user.userName !== userName
); );
console.log('guestUsers: ', guestUsers);
return ( return (
<div className="header-container"> <div className="header-container">

View File

@ -14,7 +14,10 @@ import ConveyorMechanics from "./mechanics/ConveyorMechanics";
import Visualization from "./visualization/Visualization"; import Visualization from "./visualization/Visualization";
import Analysis from "./analysis/Analysis"; import Analysis from "./analysis/Analysis";
import Simulations from "./simulation/Simulations"; import Simulations from "./simulation/Simulations";
import { useSelectedActionSphere } from "../../../store/store"; import {
useSelectedActionSphere,
useselectedFloorItem,
} from "../../../store/store";
import GlobalProperties from "./properties/GlobalProperties"; import GlobalProperties from "./properties/GlobalProperties";
import AsstePropertiies from "./properties/AssetProperties"; import AsstePropertiies from "./properties/AssetProperties";
import ZoneProperties from "./properties/ZoneProperties"; import ZoneProperties from "./properties/ZoneProperties";
@ -25,6 +28,7 @@ const SideBarRight: React.FC = () => {
const { toggleUI } = useToggleStore(); const { toggleUI } = useToggleStore();
const { selectedActionSphere } = useSelectedActionSphere(); const { selectedActionSphere } = useSelectedActionSphere();
const { subModule, setSubModule } = useSubModuleStore(); const { subModule, setSubModule } = useSubModuleStore();
const { selectedFloorItem } = useselectedFloorItem();
// Reset activeList whenever activeModule changes // Reset activeList whenever activeModule changes
useEffect(() => { useEffect(() => {
if (activeModule !== "simulation") setSubModule("properties"); if (activeModule !== "simulation") setSubModule("properties");
@ -38,7 +42,8 @@ const SideBarRight: React.FC = () => {
<div className="sidebar-actions-container"> <div className="sidebar-actions-container">
{/* {activeModule === "builder" && ( */} {/* {activeModule === "builder" && ( */}
<div <div
className={`sidebar-action-list ${subModule === "properties" ? "active" : "" className={`sidebar-action-list ${
subModule === "properties" ? "active" : ""
}`} }`}
onClick={() => setSubModule("properties")} onClick={() => setSubModule("properties")}
> >
@ -48,21 +53,24 @@ const SideBarRight: React.FC = () => {
{activeModule === "simulation" && ( {activeModule === "simulation" && (
<> <>
<div <div
className={`sidebar-action-list ${subModule === "mechanics" ? "active" : "" className={`sidebar-action-list ${
subModule === "mechanics" ? "active" : ""
}`} }`}
onClick={() => setSubModule("mechanics")} onClick={() => setSubModule("mechanics")}
> >
<MechanicsIcon isActive={subModule === "mechanics"} /> <MechanicsIcon isActive={subModule === "mechanics"} />
</div> </div>
<div <div
className={`sidebar-action-list ${subModule === "simulations" ? "active" : "" className={`sidebar-action-list ${
subModule === "simulations" ? "active" : ""
}`} }`}
onClick={() => setSubModule("simulations")} onClick={() => setSubModule("simulations")}
> >
<SimulationIcon isActive={subModule === "simulations"} /> <SimulationIcon isActive={subModule === "simulations"} />
</div> </div>
<div <div
className={`sidebar-action-list ${subModule === "analysis" ? "active" : "" className={`sidebar-action-list ${
subModule === "analysis" ? "active" : ""
}`} }`}
onClick={() => setSubModule("analysis")} onClick={() => setSubModule("analysis")}
> >
@ -75,12 +83,21 @@ const SideBarRight: React.FC = () => {
{/* process builder */} {/* process builder */}
{toggleUI && {toggleUI &&
subModule === "properties" && subModule === "properties" &&
activeModule !== "visualization" && ( activeModule !== "visualization" &&
!selectedFloorItem && (
<div className="sidebar-right-container"> <div className="sidebar-right-container">
<div className="sidebar-right-content-container"> <div className="sidebar-right-content-container">
<GlobalProperties /> <GlobalProperties />
{/* <ZoneProperties /> */} </div>
{/* <AsstePropertiies /> */} </div>
)}
{toggleUI &&
subModule === "properties" &&
activeModule !== "visualization" &&
selectedFloorItem && (
<div className="sidebar-right-container">
<div className="sidebar-right-content-container">
<AsstePropertiies />
</div> </div>
</div> </div>
)} )}
@ -89,9 +106,7 @@ const SideBarRight: React.FC = () => {
activeModule === "builder" && ( activeModule === "builder" && (
<div className="sidebar-right-container"> <div className="sidebar-right-container">
<div className="sidebar-right-content-container"> <div className="sidebar-right-content-container">
{/* <GlobalProperties /> */}
<ZoneProperties /> <ZoneProperties />
{/* <AsstePropertiies /> */}
</div> </div>
</div> </div>
)} )}
@ -99,14 +114,18 @@ const SideBarRight: React.FC = () => {
{toggleUI && activeModule === "simulation" && ( {toggleUI && activeModule === "simulation" && (
<> <>
{subModule === "mechanics" && selectedActionSphere && selectedActionSphere.path.type === "Conveyor" && ( {subModule === "mechanics" &&
selectedActionSphere &&
selectedActionSphere.path.type === "Conveyor" && (
<div className="sidebar-right-container"> <div className="sidebar-right-container">
<div className="sidebar-right-content-container"> <div className="sidebar-right-content-container">
<ConveyorMechanics /> <ConveyorMechanics />
</div> </div>
</div> </div>
)} )}
{subModule === "mechanics" && selectedActionSphere && selectedActionSphere.path.type === "Vehicle" && ( {subModule === "mechanics" &&
selectedActionSphere &&
selectedActionSphere.path.type === "Vehicle" && (
<div className="sidebar-right-container"> <div className="sidebar-right-container">
<div className="sidebar-right-content-container"> <div className="sidebar-right-content-container">
<VehicleMechanics /> <VehicleMechanics />

View File

@ -4,12 +4,16 @@ interface PositionInputProps {
onChange: (value: string) => void; // Callback for value change onChange: (value: string) => void; // Callback for value change
placeholder?: string; // Optional placeholder placeholder?: string; // Optional placeholder
type?: string; // Input type (e.g., text, number, email) type?: string; // Input type (e.g., text, number, email)
value1?: number;
value2?: number;
} }
const PositionInput: React.FC<PositionInputProps> = ({ const PositionInput: React.FC<PositionInputProps> = ({
onChange, onChange,
placeholder = "Enter value", // Default placeholder placeholder = "Enter value", // Default placeholder
type = "number", // Default type type = "number", // Default type
value1 = "number",
value2 = "number",
}) => { }) => {
return ( return (
<div className="custom-input-container"> <div className="custom-input-container">
@ -22,6 +26,7 @@ const PositionInput: React.FC<PositionInputProps> = ({
type={type} type={type}
onChange={(e) => onChange(e.target.value)} onChange={(e) => onChange(e.target.value)}
placeholder={placeholder} placeholder={placeholder}
value={value2}
/> />
</div> </div>
<div className="input-container"> <div className="input-container">
@ -31,6 +36,7 @@ const PositionInput: React.FC<PositionInputProps> = ({
type={type} type={type}
onChange={(e) => onChange(e.target.value)} onChange={(e) => onChange(e.target.value)}
placeholder={placeholder} placeholder={placeholder}
value={value1}
/> />
</div> </div>
</div> </div>

View File

@ -4,17 +4,19 @@ interface RotationInputProps {
onChange: (value: string) => void; // Callback for value change onChange: (value: string) => void; // Callback for value change
placeholder?: string; // Optional placeholder placeholder?: string; // Optional placeholder
type?: string; // Input type (e.g., text, number, email) type?: string; // Input type (e.g., text, number, email)
value?: number;
} }
const RotationInput: React.FC<RotationInputProps> = ({ const RotationInput: React.FC<RotationInputProps> = ({
onChange, onChange,
placeholder = "Enter value", // Default placeholder placeholder = "Enter value", // Default placeholder
type = "number", // Default type type = "number", // Default type
value = "number",
}) => { }) => {
return ( return (
<div className="custom-input-container"> <div className="custom-input-container">
<div className="header">Rotation</div> <div className="header">Rotation</div>
<div className="inputs-container" style={{display: "block"}}> <div className="inputs-container" style={{ display: "block" }}>
<div className="input-container"> <div className="input-container">
<div className="custom-input-label">Rotate : </div> <div className="custom-input-label">Rotate : </div>
<input <input
@ -22,6 +24,7 @@ const RotationInput: React.FC<RotationInputProps> = ({
type={type} type={type}
onChange={(e) => onChange(e.target.value)} onChange={(e) => onChange(e.target.value)}
placeholder={placeholder} placeholder={placeholder}
value={value}
/> />
</div> </div>
</div> </div>

View File

@ -1,9 +1,11 @@
import React, { useState } from "react"; import React, { useEffect, useState } from "react";
import InputToggle from "../../../ui/inputs/InputToggle"; import InputToggle from "../../../ui/inputs/InputToggle";
import InputWithDropDown from "../../../ui/inputs/InputWithDropDown"; import InputWithDropDown from "../../../ui/inputs/InputWithDropDown";
import { RemoveIcon } from "../../../icons/ExportCommonIcons"; import { RemoveIcon } from "../../../icons/ExportCommonIcons";
import PositionInput from "../customInput/PositionInputs"; import PositionInput from "../customInput/PositionInputs";
import RotationInput from "../customInput/RotationInput"; import RotationInput from "../customInput/RotationInput";
import { useselectedFloorItem } from "../../../../store/store";
import * as THREE from "three";
interface UserData { interface UserData {
id: number; // Unique identifier for the user data id: number; // Unique identifier for the user data
@ -14,7 +16,13 @@ interface UserData {
const AssetProperties: React.FC = () => { const AssetProperties: React.FC = () => {
const [userData, setUserData] = useState<UserData[]>([]); // State to track user data const [userData, setUserData] = useState<UserData[]>([]); // State to track user data
const [nextId, setNextId] = useState(1); // Unique ID for new entries const [nextId, setNextId] = useState(1); // Unique ID for new entries
const { selectedFloorItem } = useselectedFloorItem();
let xValue = selectedFloorItem.position.x;
let zValue = selectedFloorItem.position.z;
let rotationRad = selectedFloorItem.rotation.y;
let rotationDeg = THREE.MathUtils.radToDeg(rotationRad);
// useEffect(() => {}, [selectedFloorItem]);
// Function to handle adding new user data // Function to handle adding new user data
const handleAddUserData = () => { const handleAddUserData = () => {
const newUserData: UserData = { const newUserData: UserData = {
@ -45,12 +53,16 @@ const AssetProperties: React.FC = () => {
return ( return (
<div className="asset-properties-container"> <div className="asset-properties-container">
{/* Name */} {/* Name */}
<div className="header">Selected Object</div> <div className="header">{selectedFloorItem.userData.name}</div>
<div className="split"></div> <div className="split"></div>
<PositionInput onChange={() => { }} /> <PositionInput
<RotationInput onChange={() => { }} /> onChange={() => {}}
value1={xValue.toFixed(5)}
value2={zValue.toFixed(5)}
/>
<RotationInput onChange={() => {}} value={rotationDeg} />
<div className="split"></div> <div className="split"></div>