v3-Demo #101
|
@ -1,6 +1,5 @@
|
||||||
import { useProductContext } from '../../../modules/simulation/products/productContext'
|
import { useProductContext } from '../../../modules/simulation/products/productContext'
|
||||||
import RegularDropDown from '../../ui/inputs/RegularDropDown';
|
import RegularDropDown from '../../ui/inputs/RegularDropDown';
|
||||||
import { useProductStore } from '../../../store/simulation/useProductStore';
|
|
||||||
import { useCompareProductDataStore, useLoadingProgress, useSaveVersion } from '../../../store/builder/store';
|
import { useCompareProductDataStore, useLoadingProgress, useSaveVersion } from '../../../store/builder/store';
|
||||||
import useModuleStore from '../../../store/useModuleStore';
|
import useModuleStore from '../../../store/useModuleStore';
|
||||||
import CompareLayOut from '../../ui/compareVersion/CompareLayOut';
|
import CompareLayOut from '../../ui/compareVersion/CompareLayOut';
|
||||||
|
@ -8,10 +7,11 @@ import ComparisonResult from '../../ui/compareVersion/ComparisonResult';
|
||||||
import { useComparisonProduct, useMainProduct } from '../../../store/simulation/useSimulationStore';
|
import { useComparisonProduct, useMainProduct } from '../../../store/simulation/useSimulationStore';
|
||||||
import { usePlayButtonStore } from '../../../store/usePlayButtonStore';
|
import { usePlayButtonStore } from '../../../store/usePlayButtonStore';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
|
import { useDuplicateProductStore } from '../../../modules/duplicate/duplicateStores/duplicateProductStore';
|
||||||
|
|
||||||
function ComparisonScene() {
|
function ComparisonScene() {
|
||||||
const { isPlaying, setIsPlaying } = usePlayButtonStore();
|
const { isPlaying } = usePlayButtonStore();
|
||||||
const { products } = useProductStore();
|
const { products, getProductById } = useDuplicateProductStore();
|
||||||
const { isVersionSaved } = useSaveVersion();
|
const { isVersionSaved } = useSaveVersion();
|
||||||
const { activeModule } = useModuleStore();
|
const { activeModule } = useModuleStore();
|
||||||
const { selectedProductStore } = useProductContext();
|
const { selectedProductStore } = useProductContext();
|
||||||
|
@ -28,41 +28,69 @@ function ComparisonScene() {
|
||||||
setComparisonProduct(product.productUuid, product.productName);
|
setComparisonProduct(product.productUuid, product.productName);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// useEffect(() => {
|
useEffect(() => {
|
||||||
// setCompareProductsData([
|
if (compareProductsData.length === 2) return;
|
||||||
// {
|
|
||||||
// "productUuid": "15193386-ec58-4ec6-8a92-e665a39eebf1",
|
|
||||||
// "productName": "Product 1",
|
|
||||||
// "simulationData": {
|
|
||||||
// "roiPercentage": 273.9428571428571,
|
|
||||||
// "paybackPeriod": 1.8251981643721318,
|
|
||||||
// "netProfit": 9588000,
|
|
||||||
// "productionCapacity": 4508.5,
|
|
||||||
// "machineIdleTime": 1450,
|
|
||||||
// "machineActiveTime": 430,
|
|
||||||
// "throughputData": 180.34
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// "productUuid": "f614bf50-f61d-41c5-acc0-3783fb4da6b8",
|
|
||||||
// "productName": "Product 2",
|
|
||||||
// "simulationData": {
|
|
||||||
// "roiPercentage": 281.7214285714286,
|
|
||||||
// "paybackPeriod": 1.7748028701097842,
|
|
||||||
// "netProfit": 9860250,
|
|
||||||
// "productionCapacity": 4599.25,
|
|
||||||
// "machineIdleTime": 1885,
|
|
||||||
// "machineActiveTime": 646,
|
|
||||||
// "throughputData": 183.97
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// ])
|
|
||||||
// }, []); // ✅ Runs only once on mount
|
|
||||||
|
|
||||||
|
// const productData = getProductById(selectedProduct.productUuid);
|
||||||
|
|
||||||
|
// const newData = {
|
||||||
|
// "productUuid": "15193386-ec58-4ec6-8a92-e665a39eebf2",
|
||||||
|
// "productName": "Product 2",
|
||||||
|
// "simulationData": {
|
||||||
|
// "roiPercentage": 281.7214285714286,
|
||||||
|
// "paybackPeriod": 1.7748028701097842,
|
||||||
|
// "netProfit": 9860250,
|
||||||
|
// "productionCapacity": 4599.25,
|
||||||
|
// "machineIdleTime": 1885,
|
||||||
|
// "machineActiveTime": 646,
|
||||||
|
// "throughputData": 183.97
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// const existingIndex = compareProductsData.findIndex((item) =>
|
||||||
|
// item.productUuid === productData?.productUuid
|
||||||
|
// );
|
||||||
|
|
||||||
|
// if (existingIndex !== -1) {
|
||||||
|
// const updated = [...compareProductsData];
|
||||||
|
// updated[existingIndex] = newData;
|
||||||
|
// setCompareProductsData(updated);
|
||||||
|
// } else {
|
||||||
|
// setCompareProductsData([...compareProductsData, newData]);
|
||||||
|
// }
|
||||||
|
|
||||||
|
setCompareProductsData([
|
||||||
|
{
|
||||||
|
"productUuid": "15193386-ec58-4ec6-8a92-e665a39eebf1",
|
||||||
|
"productName": "Product 1",
|
||||||
|
"simulationData": {
|
||||||
|
"roiPercentage": 273.9428571428571,
|
||||||
|
"paybackPeriod": 1.8251981643721318,
|
||||||
|
"netProfit": 9588000,
|
||||||
|
"productionCapacity": 4508.5,
|
||||||
|
"machineIdleTime": 1450,
|
||||||
|
"machineActiveTime": 430,
|
||||||
|
"throughputData": 180.34
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"productUuid": "15193386-ec58-4ec6-8a92-e665a39eebf2",
|
||||||
|
"productName": "Product 2",
|
||||||
|
"simulationData": {
|
||||||
|
"roiPercentage": 281.7214285714286,
|
||||||
|
"paybackPeriod": 1.7748028701097842,
|
||||||
|
"netProfit": 9860250,
|
||||||
|
"productionCapacity": 4599.25,
|
||||||
|
"machineIdleTime": 1885,
|
||||||
|
"machineActiveTime": 646,
|
||||||
|
"throughputData": 183.97
|
||||||
|
}
|
||||||
|
}
|
||||||
|
])
|
||||||
|
}, [compareProductsData]); // ✅ Runs only once on mount
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (mainProduct && comparisonProduct && compareProductsData.length > 1) {
|
if (mainProduct && comparisonProduct && compareProductsData.length > 1) {
|
||||||
// console.log('compareProductsData: ', compareProductsData);
|
|
||||||
const hasMain = compareProductsData.some(val => val.productUuid === mainProduct.productUuid);
|
const hasMain = compareProductsData.some(val => val.productUuid === mainProduct.productUuid);
|
||||||
const hasComparison = compareProductsData.some(val => val.productUuid === comparisonProduct.productUuid);
|
const hasComparison = compareProductsData.some(val => val.productUuid === comparisonProduct.productUuid);
|
||||||
if (hasMain && hasComparison && mainProduct.productUuid !== comparisonProduct.productUuid) {
|
if (hasMain && hasComparison && mainProduct.productUuid !== comparisonProduct.productUuid) {
|
||||||
|
|
|
@ -35,7 +35,6 @@ function ProductsDuplicate({ projectId }: { projectId: string }) {
|
||||||
const id = THREE.MathUtils.generateUUID();
|
const id = THREE.MathUtils.generateUUID();
|
||||||
const name = 'Product 1';
|
const name = 'Product 1';
|
||||||
addProduct(name, id);
|
addProduct(name, id);
|
||||||
console.log(name, id, projectId);
|
|
||||||
upsertProductOrEventApi({
|
upsertProductOrEventApi({
|
||||||
productName: name,
|
productName: name,
|
||||||
productUuid: id,
|
productUuid: id,
|
||||||
|
|
Loading…
Reference in New Issue