From 54b02541c14bed207a4139ba0d20afc2c14429c0 Mon Sep 17 00:00:00 2001 From: Vishnu Date: Mon, 23 Jun 2025 09:37:53 +0530 Subject: [PATCH] updated --- app/src/app.tsx | 3 +- .../components/Dashboard/DashboardCard.tsx | 15 +- .../components/Dashboard/DashboardHome.tsx | 9 +- .../Dashboard/DashboardProjects.tsx | 4 +- .../components/Dashboard/DashboardTrash.tsx | 8 +- app/src/components/Dashboard/SidePannel.tsx | 15 +- .../Dashboard/socket/projectSocketRes.dev.tsx | 4 +- app/src/components/footer/Footer.tsx | 24 +- .../layout/scenes/ComparisonScene.tsx | 41 +- .../layout/scenes/ComparisonSceneProvider.tsx | 9 + .../components/layout/scenes/MainScene.tsx | 64 +- .../layout/scenes/MainSceneProvider.tsx | 9 + .../components/layout/sidebarLeft/Header.tsx | 2 +- .../components/layout/sidebarLeft/Outline.tsx | 2 +- .../layout/sidebarLeft/SideBarLeft.tsx | 2 +- .../components/layout/sidebarRight/Header.tsx | 5 +- .../layout/sidebarRight/SideBarRight.tsx | 12 +- .../sidebarRight/customInput/Vector3Input.tsx | 2 +- .../properties/GlobalProperties.tsx | 28 +- .../properties/ZoneProperties.tsx | 10 +- .../eventProperties/EventProperties.tsx | 19 +- .../eventProperties/WallProperties.tsx | 105 +- .../components/ActionsList.tsx | 10 +- .../mechanics/conveyorMechanics.tsx | 25 +- .../mechanics/machineMechanics.tsx | 12 +- .../mechanics/roboticArmMechanics.tsx | 10 +- .../mechanics/storageMechanics.tsx | 12 +- .../mechanics/vehicleMechanics.tsx | 10 +- .../eventProperties/trigger/Trigger.tsx | 10 +- .../sidebarRight/simulation/Simulations.tsx | 20 +- .../versionHisory/VersionHistory.tsx | 271 +- .../versionHisory/VersionSaved.tsx | 201 +- .../IotInputCards/BarChartInput.tsx | 124 +- .../FleetEfficiencyInputComponent.tsx | 93 +- .../IotInputCards/FlotingWidgetInput.tsx | 88 +- .../IotInputCards/LineGrapInput.tsx | 128 +- .../IotInputCards/PieChartInput.tsx | 122 +- .../IotInputCards/Progress1Input.tsx | 119 +- .../IotInputCards/Progress2Input.tsx | 121 +- .../WarehouseThroughputInputComponent.tsx | 85 +- .../IotInputCards/Widget2InputCard3D.tsx | 10 +- .../IotInputCards/Widget3InputCard3D.tsx | 12 +- .../IotInputCards/Widget4InputCard3D.tsx | 12 +- .../visualization/design/Design.tsx | 2 +- .../templates/CollaborationPopup.tsx | 7 +- app/src/components/templates/LoadingPage.tsx | 43 +- app/src/components/ui/FileMenu.tsx | 192 +- app/src/components/ui/ModuleToggle.tsx | 10 +- app/src/components/ui/Tools.tsx | 6 +- .../ui/collaboration/CommentThreads.tsx | 53 +- .../components/ui/collaboration/Messages.tsx | 183 +- .../ui/collaboration/ThreadChat.tsx | 310 +- .../collaboration/function/getRelativeTime.ts | 27 + .../ui/compareVersion/CompareLayOut.tsx | 61 +- .../ui/compareVersion/ComparisonResult.tsx | 8 +- .../result-card/EnergyUsage.tsx | 6 +- .../result-card/PerformanceResult.tsx | 4 +- app/src/components/ui/list/DropDownList.tsx | 9 +- app/src/components/ui/list/List.tsx | 44 +- app/src/components/ui/menu/menu.tsx | 55 +- .../ui/simulation/AssetDetailsCard.tsx | 7 +- .../ui/simulation/simulationPlayer.tsx | 4 +- .../Dashboard => }/functions/getUserData.ts | 0 .../IntialLoad/loadInitialWallItems.ts | 187 +- .../aisle/Instances/aisleInstances.tsx | 7 +- .../aisle/aisleCreator/aisleCreator.tsx | 32 +- .../aisle/aisleCreator/referenceAisle.tsx | 4 +- app/src/modules/builder/aisle/aislesGroup.tsx | 27 +- app/src/modules/builder/asset/assetsGroup.tsx | 37 +- .../builder/asset/functions/addAssetModel.ts | 869 ++-- .../builder/asset/models/model/model.tsx | 27 +- .../modules/builder/asset/models/models.tsx | 5 +- app/src/modules/builder/builder.tsx | 10 +- app/src/modules/builder/dfx/LoadBlueprint.tsx | 11 +- .../dragControlDeclaration.ts | 150 +- .../geomentries/floors/drawOnlyFloor.ts | 399 +- .../builder/geomentries/layers/deleteLayer.ts | 159 +- .../builder/geomentries/lines/deleteLine.ts | 140 +- .../lines/distanceText/distanceText.tsx | 11 +- .../builder/geomentries/lines/drawWall.ts | 347 +- .../lines/getClosestIntersection.ts | 4 +- .../builder/geomentries/lines/splitLine.ts | 211 +- .../builder/geomentries/points/deletePoint.ts | 90 +- .../builder/geomentries/walls/addWallItems.ts | 268 +- .../geomentries/walls/deleteWallItems.ts | 90 +- .../modules/builder/groups/floorPlanGroup.tsx | 27 +- .../modules/builder/groups/wallItemsGroup.tsx | 29 +- app/src/modules/builder/groups/wallsMesh.tsx | 12 +- app/src/modules/builder/groups/zoneGroup.tsx | 55 +- app/src/modules/builder/line/line.tsx | 3 +- .../point/helpers/useAisleDragSnap.tsx | 74 - .../point/helpers/usePointSnapping.tsx | 193 +- app/src/modules/builder/point/point.tsx | 26 +- .../builder/version/versionContext.tsx | 37 + .../instance/helpers/useWallClassification.ts | 338 +- .../instance/helpers/useWallGeometry.ts | 64 - .../builder/wall/Instances/instance/wall.tsx | 63 +- .../builder/wall/Instances/wallInstances.tsx | 39 +- .../wall/wallCreator/referenceWall.tsx | 8 +- .../builder/wall/wallCreator/wallCreator.tsx | 133 +- .../collaboration/camera/collabCams.tsx | 6 +- .../collaboration/comments/commentsGroup.tsx | 31 +- .../commentInstance/commentInstance.tsx | 98 +- .../comments/instances/commentInstances.tsx | 48 +- .../socket/socketResponses.dev.tsx | 48 +- .../socket/threadSocketResponses.dev.tsx | 168 + app/src/modules/market/MarketPlace.tsx | 4 - app/src/modules/scene/camera/switchView.tsx | 10 +- .../scene/camera/updateCameraPosition.ts | 50 +- app/src/modules/scene/controls/controls.tsx | 12 +- .../selectionControls/copyPasteControls.tsx | 33 +- .../selectionControls/duplicationControls.tsx | 29 +- .../selectionControls/moveControls.tsx | 29 +- .../selectionControls/rotateControls.tsx | 32 +- .../selectionControls/selectionControls.tsx | 24 +- .../transformControls/transformControls.tsx | 30 +- app/src/modules/scene/scene.tsx | 104 +- app/src/modules/scene/sceneContext.tsx | 33 +- .../conveyor/actionHandler/useSpawnHandler.ts | 5 +- .../actionHandler/useProcessHandler.ts | 5 +- .../actionHandler/usePickAndPlaceHandler.ts | 5 +- .../actionHandler/useRetrieveHandler.ts | 5 +- .../actionHandler/useStoreHandler.ts | 5 +- .../vehicle/actionHandler/useTravelHandler.ts | 5 +- .../simulation/analysis/ROI/roiData.tsx | 13 +- .../analysis/throughPut/throughPutData.tsx | 8 +- .../conveyorInstance/conveyorInstance.tsx | 5 +- .../events/points/creator/pointsCreator.tsx | 14 +- .../functions/handleAddEventToProduct.ts | 7 +- .../triggerConnections/triggerConnector.tsx | 17 +- .../machineInstance/machineInstance.tsx | 5 +- .../instances/instance/materialInstance.tsx | 5 +- .../modules/simulation/products/products.tsx | 24 +- .../armInstance/roboticArmInstance.tsx | 9 +- app/src/modules/simulation/simulation.tsx | 8 +- .../simulation/simulator/simulator.tsx | 6 +- .../simulation/spatialUI/arm/armBotUI.tsx | 11 +- .../spatialUI/arm/useDraggableGLTF.ts | 5 +- .../spatialUI/vehicle/vehicleUI.tsx | 9 +- .../instances/animator/MaterialAnimator.tsx | 30 +- .../instances/storageUnitInstances.tsx | 27 +- .../triggerHandler/useTriggerHandler.ts | 5 +- .../simulation/ui3d/MachineContentUi.tsx | 2 +- .../simulation/ui3d/RoboticArmContentUi.tsx | 2 +- .../simulation/ui3d/VehicleContentUi.tsx | 2 + .../instances/instance/vehicleInstance.tsx | 5 +- .../vehicle/navMesh/polygonGenerator.tsx | 6 +- .../visualization/RealTimeVisulization.tsx | 69 +- .../functions/handleSaveTemplate.ts | 19 +- .../visualization/functions/handleUiDrop.ts | 20 +- .../visualization/template/Templates.tsx | 31 +- .../widgets/2d/DraggableWidget.tsx | 466 +- .../widgets/2d/charts/BarGraphComponent.tsx | 19 +- .../2d/charts/DoughnutGraphComponent.tsx | 86 +- .../widgets/2d/charts/LineGraphComponent.tsx | 23 +- .../widgets/2d/charts/PieGraphComponent.tsx | 22 +- .../2d/charts/PolarAreaGraphComponent.tsx | 22 +- .../widgets/2d/charts/ProgressCard1.tsx | 18 +- .../widgets/2d/charts/ProgressCard2.tsx | 19 +- .../widgets/3d/Dropped3dWidget.tsx | 74 +- .../widgets/3d/cards/ProductionCapacity.tsx | 6 +- .../widgets/3d/cards/ReturnOfInvestment.tsx | 17 +- .../widgets/3d/cards/StateWorking.tsx | 23 +- .../widgets/3d/cards/Throughput.tsx | 10 +- .../floating/DroppedFloatingWidgets.tsx | 69 +- .../cards/FleetEfficiencyComponent.tsx | 20 +- .../floating/cards/TotalCardComponent.tsx | 18 +- .../cards/WarehouseThroughputComponent.tsx | 17 +- .../widgets/panel/AddButtons.tsx | 34 +- .../visualization/widgets/panel/Panel.tsx | 416 +- .../visualization/zone/DisplayZone.tsx | 20 +- app/src/pages/Dashboard.tsx | 13 +- app/src/pages/Project.tsx | 225 +- app/src/pages/UserAuth.tsx | 14 +- app/src/services/dashboard/createProject.ts | 4 +- app/src/services/dashboard/deleteProject.ts | 4 +- .../services/dashboard/duplicateProject.ts | 4 +- app/src/services/dashboard/getAllProjects.ts | 2 +- app/src/services/dashboard/projectTutorial.ts | 4 +- app/src/services/dashboard/recentlyViewed.ts | 2 +- app/src/services/dashboard/searchProjects.ts | 4 +- .../services/dashboard/trashSearchProject.ts | 4 +- app/src/services/dashboard/updateProject.ts | 5 +- app/src/services/dashboard/viewProject.ts | 2 +- .../factoryBuilder/aisle/createAisleApi.ts | 9 +- .../factoryBuilder/aisle/deleteAisleApi.ts | 6 +- .../factoryBuilder/aisle/getAisleApi.ts | 6 +- .../assest/assets/getAssetImages.ts | 2 +- .../assest/assets/getAssetModel.ts | 4 +- .../assest/assets/getCategoryAsset.ts | 2 +- .../assest/floorAsset/deleteFloorItemApi.ts | 4 +- .../assest/floorAsset/getFloorItemsApi.ts | 9 +- .../{setFloorItemApi.ts => setAssetsApi.ts} | 79 +- .../assest/wallAsset/deleteWallItemApi.ts | 4 +- .../assest/wallAsset/getWallItemsApi.ts | 8 +- .../assest/wallAsset/setWallItemApi.ts | 4 +- .../factoryBuilder/camera/getCameraApi.ts | 4 +- .../factoryBuilder/camera/setCameraApi.ts | 4 +- .../factoryBuilder/collab/getActiveUsers.ts | 4 +- .../factoryBuilder/collab/getUsersApi.ts | 4 +- .../factoryBuilder/collab/giveCollabAccess.ts | 4 +- .../factoryBuilder/comments/addCommentsApi.ts | 46 + .../comments/createThreadApi.ts | 34 + .../comments/deleteCommentApi.ts | 43 + .../comments/deleteThreadApi.ts | 35 + .../comments/editThreadTitleApi.ts | 43 + .../factoryBuilder/comments/getAllThreads.ts | 34 + .../environment/findEnvironment.ts | 4 +- .../environment/setEnvironment.ts | 4 +- .../factoryBuilder/lines/deleteLayerApi.ts | 4 +- .../factoryBuilder/lines/deleteLineApi.ts | 4 +- .../factoryBuilder/lines/deletePointApi.ts | 4 +- .../factoryBuilder/lines/getLinesApi.ts | 8 +- .../factoryBuilder/lines/setLineApi.ts | 4 +- .../factoryBuilder/lines/updatePointApi.ts | 4 +- .../factoryBuilder/signInSignUp/signUpApi.ts | 4 +- .../versionControl/addVersionApi.ts | 39 + .../versionControl/getVersionDataApi.ts | 32 + .../versionControl/getVersionHistoryApi.ts | 32 + .../factoryBuilder/zones/deleteZoneApi.ts | 4 +- .../factoryBuilder/zones/getZonesApi.ts | 12 +- .../factoryBuilder/zones/setZonesApi.ts | 4 +- .../services/marketplace/fetchAssetDetails.ts | 2 +- app/src/services/marketplace/fetchAssets.ts | 2 +- app/src/services/marketplace/fetchGltfUrl.ts | 2 +- .../services/marketplace/getSortedAssets.ts | 2 +- .../products/UpsertProductOrEventApi.ts | 4 +- .../simulation/products/deleteEventDataApi.ts | 4 +- .../simulation/products/deleteProductApi.ts | 4 +- .../simulation/products/getProductApi.ts | 4 +- .../simulation/products/getallProductsApi.ts | 8 +- .../simulation/products/renameProductApi.ts | 7 +- .../services/visulization/zone/add3dWidget.ts | 4 +- .../visulization/zone/addFloatingWidgets.ts | 10 +- .../services/visulization/zone/addWidgets.ts | 10 +- .../services/visulization/zone/clearPanel.ts | 4 +- .../visulization/zone/delete3dWidget.ts | 4 +- .../visulization/zone/deleteFloatingWidget.ts | 4 +- .../services/visulization/zone/deletePanel.ts | 4 +- .../visulization/zone/deleteTemplate.ts | 4 +- .../visulization/zone/deleteWidgetApi.ts | 4 +- .../visulization/zone/duplicateWidget.ts | 4 +- .../visulization/zone/get3dWidgetData.ts | 7 +- .../visulization/zone/getFloatingData.ts | 7 +- .../visulization/zone/getSelect2dZoneData.ts | 6 +- .../services/visulization/zone/getTemplate.ts | 6 +- .../services/visulization/zone/getZoneData.ts | 6 +- .../services/visulization/zone/getZones.ts | 2 +- .../visulization/zone/loadTemplate.ts | 4 +- .../services/visulization/zone/lockPanel.ts | 4 +- app/src/services/visulization/zone/panel.ts | 4 +- .../visulization/zone/saveTempleteApi.ts | 4 +- .../visulization/zone/update3dWidget.ts | 13 +- .../visulization/zone/zoneCameraUpdation.ts | 4 +- app/src/store/builder/store.ts | 87 +- app/src/store/builder/useAisleStore.ts | 440 +- app/src/store/builder/useAssetStore.ts | 371 +- app/src/store/builder/useBuilderStore.ts | 14 +- .../store/builder/useVersionHistoryStore.ts | 76 + app/src/store/builder/useWallStore.tsx | 21 + .../store/collaboration/useCommentStore.ts | 155 +- app/src/store/simulation/useEventsStore.ts | 548 +-- app/src/store/simulation/useProductStore.ts | 1228 ++--- .../store/simulation/useSimulationStore.ts | 26 + app/src/store/simulation/useVehicleStore.ts | 4 +- .../visualization/useDroppedObjectsStore.ts | 38 +- .../components/simulation/simulation.scss | 48 +- app/src/styles/layout/compareLayout.scss | 10 +- app/src/styles/layout/sidebar.scss | 3938 +++++++++-------- app/src/styles/pages/dashboard.scss | 2 +- app/src/styles/pages/realTimeViz.scss | 190 +- app/src/styles/scene/comments.scss | 37 +- app/src/styles/scene/scene.scss | 7 +- app/src/types/builderTypes.d.ts | 16 +- app/src/types/collaborationTypes.d.ts | 8 +- .../utils/shortcutkeys/detectModifierKeys.ts | 50 +- .../utils/shortcutkeys/handleShortcutKeys.ts | 36 +- app/src/utils/theme.ts | 2 +- 278 files changed, 10134 insertions(+), 7904 deletions(-) create mode 100644 app/src/components/ui/collaboration/function/getRelativeTime.ts rename app/src/{components/Dashboard => }/functions/getUserData.ts (100%) delete mode 100644 app/src/modules/builder/point/helpers/useAisleDragSnap.tsx create mode 100644 app/src/modules/builder/version/versionContext.tsx delete mode 100644 app/src/modules/builder/wall/Instances/instance/helpers/useWallGeometry.ts create mode 100644 app/src/modules/collaboration/socket/threadSocketResponses.dev.tsx rename app/src/services/factoryBuilder/assest/floorAsset/{setFloorItemApi.ts => setAssetsApi.ts} (54%) create mode 100644 app/src/services/factoryBuilder/comments/addCommentsApi.ts create mode 100644 app/src/services/factoryBuilder/comments/createThreadApi.ts create mode 100644 app/src/services/factoryBuilder/comments/deleteCommentApi.ts create mode 100644 app/src/services/factoryBuilder/comments/deleteThreadApi.ts create mode 100644 app/src/services/factoryBuilder/comments/editThreadTitleApi.ts create mode 100644 app/src/services/factoryBuilder/comments/getAllThreads.ts create mode 100644 app/src/services/factoryBuilder/versionControl/addVersionApi.ts create mode 100644 app/src/services/factoryBuilder/versionControl/getVersionDataApi.ts create mode 100644 app/src/services/factoryBuilder/versionControl/getVersionHistoryApi.ts create mode 100644 app/src/store/builder/useVersionHistoryStore.ts diff --git a/app/src/app.tsx b/app/src/app.tsx index 6aa1547..b03d4df 100644 --- a/app/src/app.tsx +++ b/app/src/app.tsx @@ -1,6 +1,6 @@ import React, { useEffect } from "react"; import { Cache } from "three"; -import { BrowserRouter as Router, Routes, Route, useParams } from "react-router-dom"; +import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; import Dashboard from "./pages/Dashboard"; import Project from "./pages/Project"; import UserAuth from "./pages/UserAuth"; @@ -14,7 +14,6 @@ const App: React.FC = () => { Cache.enabled = true; }, []); - return ( diff --git a/app/src/components/Dashboard/DashboardCard.tsx b/app/src/components/Dashboard/DashboardCard.tsx index 1a532b9..1300187 100644 --- a/app/src/components/Dashboard/DashboardCard.tsx +++ b/app/src/components/Dashboard/DashboardCard.tsx @@ -1,7 +1,7 @@ import React, { useState, useRef, useEffect } from "react"; import img from "../../assets/image/image.png"; import { useNavigate } from "react-router-dom"; -import { getUserData } from "./functions/getUserData"; +import { getUserData } from "../../functions/getUserData"; import { useLoadingProgress, useProjectName, useSocketStore } from "../../store/builder/store"; import { viewProject } from "../../services/dashboard/viewProject"; import OuterClick from "../../utils/outerClick"; @@ -60,12 +60,6 @@ const DashboardCard: React.FC = ({ const navigateToProject = async (e: any) => { if (active && active == "trash") return; - try { - const viewedProject = await viewProject(organization, projectId, userId); - console.log("Viewed project:", viewedProject); - } catch (error) { - console.error("Error opening project:", error); - } setLoadingProgress(1) setProjectName(projectName); navigate(`/${projectId}`); @@ -75,9 +69,9 @@ const DashboardCard: React.FC = ({ switch (option) { case "delete": if (handleDeleteProject) { - await handleDeleteProject(projectId); + handleDeleteProject(projectId); } else if (handleTrashDeleteProject) { - await handleTrashDeleteProject(projectId); + handleTrashDeleteProject(projectId); } break; case "restore": @@ -133,7 +127,7 @@ const DashboardCard: React.FC = ({ if (!projectId) return; try { const projects = await getAllProjects(userId, organization); - console.log("projects: ", projects); + // console.log("projects: ", projects); let projectUuid = projects.Projects.find( (val: any) => val.projectUuid === projectId || val._id === projectId ); @@ -264,7 +258,6 @@ const DashboardCard: React.FC = ({ key={option} className="option" onClick={(e) => { - console.log("option", option); e.stopPropagation(); handleOptionClick(option); }} diff --git a/app/src/components/Dashboard/DashboardHome.tsx b/app/src/components/Dashboard/DashboardHome.tsx index 2dc271b..5fc1f92 100644 --- a/app/src/components/Dashboard/DashboardHome.tsx +++ b/app/src/components/Dashboard/DashboardHome.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react"; import DashboardCard from "./DashboardCard"; import DashboardNavBar from "./DashboardNavBar"; import MarketPlaceBanner from "./MarketPlaceBanner"; -import { getUserData } from "./functions/getUserData"; +import { getUserData } from "../../functions/getUserData"; import { useSocketStore } from "../../store/builder/store"; import { recentlyViewed } from "../../services/dashboard/recentlyViewed"; import { searchProject } from "../../services/dashboard/searchProjects"; @@ -34,8 +34,7 @@ const DashboardHome: React.FC = () => { const fetchRecentProjects = async () => { try { const projects = await recentlyViewed(organization, userId); - console.log("RecentlyViewed: ", projects); - + if (JSON.stringify(projects) !== JSON.stringify(recentProjects)) { setRecentProjects(projects); } @@ -59,7 +58,6 @@ const DashboardHome: React.FC = () => { }; const handleDeleteProject = async (projectId: any) => { - console.log("projectId:delete ", projectId); try { //API for delete project // const deletedProject = await deleteProject( @@ -115,6 +113,7 @@ const DashboardHome: React.FC = () => { const renderProjects = () => { const projectList = recentProjects[Object.keys(recentProjects)[0]]; + console.log('projectList: ', projectList); if (!projectList?.length) { return
No recent projects found
; @@ -150,7 +149,7 @@ const DashboardHome: React.FC = () => { handleRecentProjectSearch={handleRecentProjectSearch} /> -
+

Recents

{renderProjects()}
diff --git a/app/src/components/Dashboard/DashboardProjects.tsx b/app/src/components/Dashboard/DashboardProjects.tsx index e931328..e27d12a 100644 --- a/app/src/components/Dashboard/DashboardProjects.tsx +++ b/app/src/components/Dashboard/DashboardProjects.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from "react"; import DashboardNavBar from "./DashboardNavBar"; import DashboardCard from "./DashboardCard"; -import { getUserData } from "./functions/getUserData"; +import { getUserData } from "../../functions/getUserData"; import { useSocketStore } from "../../store/builder/store"; import { getAllProjects } from "../../services/dashboard/getAllProjects"; import { searchProject } from "../../services/dashboard/searchProjects"; @@ -65,7 +65,7 @@ const DashboardProjects: React.FC = () => { // console.log('deletedProject: ', deletedProject); const deleteProjects = { projectId, - organization: organization, + organization, userId, }; diff --git a/app/src/components/Dashboard/DashboardTrash.tsx b/app/src/components/Dashboard/DashboardTrash.tsx index e1329fc..2578e49 100644 --- a/app/src/components/Dashboard/DashboardTrash.tsx +++ b/app/src/components/Dashboard/DashboardTrash.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from "react"; import DashboardCard from "./DashboardCard"; import DashboardNavBar from "./DashboardNavBar"; -import { getUserData } from "./functions/getUserData"; +import { getUserData } from "../../functions/getUserData"; import { trashSearchProject } from "../../services/dashboard/trashSearchProject"; import { restoreTrash } from "../../services/dashboard/restoreTrash"; import { getTrash } from "../../services/dashboard/getTrash"; @@ -22,9 +22,7 @@ interface DiscardedProjects { } const DashboardTrash: React.FC = () => { - const [discardedProjects, setDiscardedProjects] = useState( - {} - ); + const [discardedProjects, setDiscardedProjects] = useState({}); const [isSearchActive, setIsSearchActive] = useState(false); const { userId, organization } = getUserData(); const { projectSocket } = useSocketStore(); @@ -60,7 +58,6 @@ const DashboardTrash: React.FC = () => { }; const handleRestoreProject = async (projectId: any) => { - console.log("projectId: ", projectId); try { const restoreProject = await restoreTrash(organization, projectId); // console.log('restoreProject: ', restoreProject); @@ -86,6 +83,7 @@ const DashboardTrash: React.FC = () => { }; const handleTrashDeleteProject = async (projectId: any) => { + console.log('projectId: ', projectId); try { // const deletedProject = await deleteTrash( // organization, projectId diff --git a/app/src/components/Dashboard/SidePannel.tsx b/app/src/components/Dashboard/SidePannel.tsx index 2e6c1ea..89b7ba9 100644 --- a/app/src/components/Dashboard/SidePannel.tsx +++ b/app/src/components/Dashboard/SidePannel.tsx @@ -12,7 +12,7 @@ import { useNavigate } from "react-router-dom"; import darkThemeImage from "../../assets/image/darkThemeProject.png"; import lightThemeImage from "../../assets/image/lightThemeProject.png"; import { SettingsIcon, TrashIcon } from "../icons/ExportCommonIcons"; -import { getUserData } from "./functions/getUserData"; +import { getUserData } from "../../functions/getUserData"; import { useLoadingProgress, useSocketStore } from "../../store/builder/store"; import { createProject } from "../../services/dashboard/createProject"; @@ -42,7 +42,7 @@ const SidePannel: React.FC = ({ setActiveTab, activeTab }) => { const projectId = generateProjectId(); useSocketStore.getState().initializeSocket(email, organization, token); - + //API for creating new Project // const project = await createProject( // projectId, @@ -57,11 +57,11 @@ const SidePannel: React.FC = ({ setActiveTab, activeTab }) => { organization: organization, projectUuid: projectId, }; - console.log("projectSocket: ", projectSocket); + // console.log("projectSocket: ", projectSocket); if (projectSocket) { // console.log('addProject: ', addProject); const handleResponse = (data: any) => { - console.log('Project add response:', data); + // console.log('Project add response:', data); if (data.message === "Project created successfully") { setLoadingProgress(1) navigate(`/${data.data.projectId}`); @@ -70,7 +70,7 @@ const SidePannel: React.FC = ({ setActiveTab, activeTab }) => { }; projectSocket.on("v1-project:response:add", handleResponse); - console.log('addProject: ', addProject); + // console.log('addProject: ', addProject); projectSocket.emit("v1:project:add", addProject); } else { console.error("Socket is not connected."); @@ -163,7 +163,10 @@ const SidePannel: React.FC = ({ setActiveTab, activeTab }) => { Settings
-
+
{ + localStorage.clear(); + navigate("/"); + }}> Log out
diff --git a/app/src/components/Dashboard/socket/projectSocketRes.dev.tsx b/app/src/components/Dashboard/socket/projectSocketRes.dev.tsx index e19a957..069cd85 100644 --- a/app/src/components/Dashboard/socket/projectSocketRes.dev.tsx +++ b/app/src/components/Dashboard/socket/projectSocketRes.dev.tsx @@ -1,7 +1,7 @@ import React, { useEffect } from 'react'; import { useSocketStore } from '../../../store/builder/store'; -import { getUserData } from '../functions/getUserData'; +import { getUserData } from '../../../functions/getUserData'; import { getAllProjects } from '../../../services/dashboard/getAllProjects'; import { recentlyViewed } from '../../../services/dashboard/recentlyViewed'; @@ -56,7 +56,7 @@ const ProjectSocketRes = ({ if (data?.message === "Project Duplicated successfully") { if (setWorkspaceProjects) { const allProjects = await getAllProjects(userId, organization); - console.log('allProjects: ', allProjects); + // console.log('allProjects: ', allProjects); setWorkspaceProjects(allProjects); } else if (setRecentProjects) { const recentProjects = await recentlyViewed(organization, userId); diff --git a/app/src/components/footer/Footer.tsx b/app/src/components/footer/Footer.tsx index 0ee70c5..737ee26 100644 --- a/app/src/components/footer/Footer.tsx +++ b/app/src/components/footer/Footer.tsx @@ -8,15 +8,22 @@ import { CurserRightIcon, } from "../icons/LogIcons"; import ShortcutHelper from "./shortcutHelper"; -import { useShortcutStore } from "../../store/builder/store"; +import useVersionHistoryVisibleStore, { useShortcutStore } from "../../store/builder/store"; import { usePlayButtonStore } from "../../store/usePlayButtonStore"; +import useModuleStore, { useSubModuleStore } from "../../store/useModuleStore"; +import { useVersionContext } from "../../modules/builder/version/versionContext"; const Footer: React.FC = () => { const { logs, setIsLogListVisible } = useLogger(); const lastLog = logs.length > 0 ? logs[logs.length - 1] : null; + const { setActiveModule } = useModuleStore(); + const { setSubModule } = useSubModuleStore(); + const { setVersionHistoryVisible } = useVersionHistoryVisibleStore(); const { isPlaying } = usePlayButtonStore(); const { showShortcuts, setShowShortcuts } = useShortcutStore(); + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion } = selectedVersionStore(); return (
@@ -61,8 +68,12 @@ const Footer: React.FC = () => { )}
-
- V 0.01 +
{ + setVersionHistoryVisible(true); + setSubModule("properties"); + setActiveModule('builder'); + }}> + {(selectedVersion?.version) ?? 'v 0.0.0'}
@@ -72,11 +83,10 @@ const Footer: React.FC = () => { {!isPlaying && (
- +
)}
diff --git a/app/src/components/layout/scenes/ComparisonScene.tsx b/app/src/components/layout/scenes/ComparisonScene.tsx index ce8e455..b1029df 100644 --- a/app/src/components/layout/scenes/ComparisonScene.tsx +++ b/app/src/components/layout/scenes/ComparisonScene.tsx @@ -1,6 +1,5 @@ import { useProductContext } from '../../../modules/simulation/products/productContext' import RegularDropDown from '../../ui/inputs/RegularDropDown'; -import { useProductStore } from '../../../store/simulation/useProductStore'; import { useCompareProductDataStore, useLoadingProgress, useSaveVersion } from '../../../store/builder/store'; import useModuleStore from '../../../store/useModuleStore'; import CompareLayOut from '../../ui/compareVersion/CompareLayOut'; @@ -8,10 +7,14 @@ import ComparisonResult from '../../ui/compareVersion/ComparisonResult'; import { useComparisonProduct, useMainProduct } from '../../../store/simulation/useSimulationStore'; import { usePlayButtonStore } from '../../../store/usePlayButtonStore'; import { useEffect, useState } from 'react'; +import { useVersionHistoryStore } from '../../../store/builder/useVersionHistoryStore'; +import { useVersionContext } from '../../../modules/builder/version/versionContext'; +import { useSceneContext } from '../../../modules/scene/sceneContext'; function ComparisonScene() { - const { isPlaying, setIsPlaying } = usePlayButtonStore(); - const { products } = useProductStore(); + const { isPlaying } = usePlayButtonStore(); + const { productStore } = useSceneContext(); + const { products } = productStore(); const { isVersionSaved } = useSaveVersion(); const { activeModule } = useModuleStore(); const { selectedProductStore } = useProductContext(); @@ -21,13 +24,30 @@ function ComparisonScene() { const { loadingProgress } = useLoadingProgress(); const { compareProductsData, setCompareProductsData } = useCompareProductDataStore(); const [shouldShowComparisonResult, setShouldShowComparisonResult] = useState(false); + const { versionHistory } = useVersionHistoryStore(); + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion, setSelectedVersion } = selectedVersionStore(); - const handleSelectLayout = (option: string) => { + const handleSelectVersion = (option: string) => { + const version = versionHistory.find((version) => version.versionName === option); + if (version) { + setSelectedVersion(version); + } + }; + + const handleSelectProduct = (option: string) => { const product = products.find((product) => product.productName === option); if (product) { setComparisonProduct(product.productUuid, product.productName); } }; + + // useEffect(() => { + // if (versionHistory.length > 0) { + // setSelectedVersion(versionHistory[0]) + // } + // }, [versionHistory]) + // useEffect(() => { // setCompareProductsData([ // { @@ -57,7 +77,7 @@ function ComparisonScene() { // } // } // ]) - // }, []); // ✅ Runs only once on mount + // }, []); useEffect(() => { @@ -79,12 +99,19 @@ function ComparisonScene() { <> {isVersionSaved && activeModule === "simulation" && selectedProduct && ( <> - {comparisonProduct && !isPlaying && + {selectedVersion && !isPlaying &&
+ v.versionName)} // Pass layout names as options + onSelect={handleSelectVersion} + search={false} + /> +
l.productName)} // Pass layout names as options - onSelect={handleSelectLayout} + onSelect={handleSelectProduct} search={false} />
diff --git a/app/src/components/layout/scenes/ComparisonSceneProvider.tsx b/app/src/components/layout/scenes/ComparisonSceneProvider.tsx index e47805c..46749b7 100644 --- a/app/src/components/layout/scenes/ComparisonSceneProvider.tsx +++ b/app/src/components/layout/scenes/ComparisonSceneProvider.tsx @@ -1,7 +1,16 @@ +import { useEffect } from 'react'; import { ProductProvider } from '../../../modules/simulation/products/productContext' import ComparisonScene from './ComparisonScene'; +import { useSceneContext } from '../../../modules/scene/sceneContext'; function ComparisonSceneProvider() { + const { assetStore } = useSceneContext(); + const { clearAssets } = assetStore(); + + useEffect(() => { + clearAssets(); + }, []) + return ( diff --git a/app/src/components/layout/scenes/MainScene.tsx b/app/src/components/layout/scenes/MainScene.tsx index 67dc35a..eebab29 100644 --- a/app/src/components/layout/scenes/MainScene.tsx +++ b/app/src/components/layout/scenes/MainScene.tsx @@ -30,15 +30,17 @@ import { useMainProduct, } from "../../../store/simulation/useSimulationStore"; import { useProductContext } from "../../../modules/simulation/products/productContext"; -import { useProductStore } from "../../../store/simulation/useProductStore"; import RegularDropDown from "../../ui/inputs/RegularDropDown"; import RenameTooltip from "../../ui/features/RenameTooltip"; -import { setFloorItemApi } from "../../../services/factoryBuilder/assest/floorAsset/setFloorItemApi"; -import { useAssetsStore } from "../../../store/builder/useAssetStore"; +import { setAssetsApi } from "../../../services/factoryBuilder/assest/floorAsset/setAssetsApi"; import { useParams } from "react-router-dom"; +import { useSceneContext } from "../../../modules/scene/sceneContext"; +import { useVersionHistoryStore } from "../../../store/builder/useVersionHistoryStore"; +import { useVersionContext } from "../../../modules/builder/version/versionContext"; +import VersionSaved from "../sidebarRight/versionHisory/VersionSaved"; +import Footer from "../../footer/Footer"; function MainScene() { - const { products } = useProductStore(); const { setMainProduct } = useMainProduct(); const { selectedProductStore } = useProductContext(); const { selectedProduct } = selectedProductStore(); @@ -54,9 +56,14 @@ function MainScene() { const { setFloatingWidget } = useFloatingWidget(); const { clearComparisonProduct } = useComparisonProduct(); const { selectedFloorItem, setSelectedFloorItem } = useSelectedFloorItem(); - const { setName } = useAssetsStore(); + const { assetStore, productStore } = useSceneContext(); + const { products } = productStore(); + const { setName } = assetStore(); const { projectId } = useParams() const { isRenameMode, setIsRenameMode } = useRenameModeStore(); + const { versionHistory } = useVersionHistoryStore(); + const { selectedVersionStore } = useVersionContext(); + const { selectedVersion, setSelectedVersion } = selectedVersionStore(); useEffect(() => { if (activeModule !== 'simulation') { @@ -65,22 +72,33 @@ function MainScene() { } }, [activeModule]) - const handleSelectLayout = (option: string) => { + useEffect(() => { + if (versionHistory.length > 0) { + setSelectedVersion(versionHistory[0]) + } + }, [versionHistory]) + + const handleSelectVersion = (option: string) => { + const version = versionHistory.find((version) => version.versionName === option); + if (version) { + setSelectedVersion(version); + } + }; + + const handleSelectProduct = (option: string) => { const product = products.find((product) => product.productName === option); if (product) { setMainProduct(product.productUuid, product.productName); } }; + const handleObjectRename = async (newName: string) => { if (!projectId) return - const email = localStorage.getItem("email") ?? ""; - const organization = email?.split("@")[1]?.split(".")[0]; - let response = await setFloorItemApi( - organization, - selectedFloorItem.userData.modelUuid, - newName, + let response = await setAssetsApi({ + modelUuid: selectedFloorItem.userData.modelUuid, + modelName: newName, projectId - ); + }); selectedFloorItem.userData = { ...selectedFloorItem.userData, modelName: newName @@ -98,7 +116,7 @@ function MainScene() { {loadingProgress > 0 && } {!isPlaying && ( <> - {toggleThreeD && } + {toggleThreeD && !isVersionSaved && } @@ -137,6 +155,8 @@ function MainScene() { selectedZone, setFloatingWidget, event, + projectId, + versionId: selectedVersion?.versionId || '', }) } onDragOver={(event) => event.preventDefault()} @@ -144,16 +164,28 @@ function MainScene() {
- {selectedProduct && isVersionSaved && !isPlaying && activeModule === "simulation" && ( + {selectedProduct && selectedVersion && isVersionSaved && !isPlaying && activeModule === "simulation" && (
+ v.versionName)} // Pass layout names as options + onSelect={handleSelectVersion} + search={false} + /> +
l.productName)} // Pass layout names as options - onSelect={handleSelectLayout} + onSelect={handleSelectProduct} search={false} />
)} + + {activeModule !== "market" && !selectedUser &&