Skip to content

Commit fecdce1

Browse files
committed
Refactor InspectorPanel to integrate MeshTypeSection for improved modularity
- Introduced MeshTypeSection component to encapsulate mesh type selection logic, promoting single responsibility and reducing code duplication. - Updated the InspectorPanel to utilize the new MeshTypeSection, enhancing clarity and maintainability of the component. - Streamlined mesh type handling by consolidating related logic within the MeshTypeSection, improving overall structure.
1 parent da9843a commit fecdce1

1 file changed

Lines changed: 31 additions & 14 deletions

File tree

src/editor/components/InspectorPanel.tsx

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react';
22

33
import { getEntityMeshType } from '@/core/helpers/meshUtils';
44
import { MeshTypeEnum, Transform, updateMeshType } from '@/core/lib/ecs';
5+
import { MeshTypeSection } from '@/editor/components/panels/InspectorPanel/Mesh/MeshTypeSection';
56

67
import { TransformFields } from './panels/InspectorPanel/Transform/TransformFields/TransformFields';
78

@@ -130,20 +131,36 @@ export const InspectorPanel: React.FC<IInspectorPanelProps> = ({ selectedEntity
130131
<label className="block text-sm font-medium">Name</label>
131132
<div className="px-2 py-1 bg-base-300 rounded-box text-base-content">{entityName}</div>
132133
</div>
133-
<div className="space-y-2">
134-
<label className="block text-sm font-medium">Mesh Type</label>
135-
<select
136-
value={meshType}
137-
onChange={handleMeshTypeChange}
138-
className="select select-bordered w-full bg-base-300 text-base-content"
139-
>
140-
<option value="unknown" disabled>
141-
Select mesh type
142-
</option>
143-
<option value="Cube">Cube</option>
144-
<option value="Sphere">Sphere</option>
145-
</select>
146-
</div>
134+
<MeshTypeSection
135+
meshType={meshType}
136+
setMeshType={(type) => {
137+
let meshTypeEnum: MeshTypeEnum;
138+
switch (type) {
139+
case 'Cube':
140+
meshTypeEnum = MeshTypeEnum.Cube;
141+
break;
142+
case 'Sphere':
143+
meshTypeEnum = MeshTypeEnum.Sphere;
144+
break;
145+
case 'Cylinder':
146+
meshTypeEnum = MeshTypeEnum.Cylinder;
147+
break;
148+
case 'Cone':
149+
meshTypeEnum = MeshTypeEnum.Cone;
150+
break;
151+
case 'Torus':
152+
meshTypeEnum = MeshTypeEnum.Torus;
153+
break;
154+
case 'Plane':
155+
meshTypeEnum = MeshTypeEnum.Plane;
156+
break;
157+
default:
158+
return;
159+
}
160+
updateMeshType(selectedEntity, meshTypeEnum);
161+
setMeshType(type);
162+
}}
163+
/>
147164
<TransformFields label="Position" value={position} onChange={handlePositionChange} />
148165
<TransformFields label="Rotation" value={rotation} onChange={handleRotationChange} />
149166
<TransformFields label="Scale" value={scale} onChange={handleScaleChange} />

0 commit comments

Comments
 (0)