@@ -4,7 +4,8 @@ import * as THREE from "three"
44import InputSystem from "@/systems/input/InputSystem"
55import GizmoSceneObject , { type GizmoMode } from "@/systems/scene/GizmoSceneObject"
66import World from "@/systems/World"
7- import { Button , ToggleButton , ToggleButtonGroup } from "./StyledComponents"
7+ import { Button , ToggleButton , ToggleButtonGroup } from "@mui/material"
8+ import { Tabs , Tab } from "@mui/material"
89import type TransformGizmoControlProps from "./TransformGizmoControlProps"
910
1011/**
@@ -56,25 +57,10 @@ const TransformGizmoControl: React.FC<TransformGizmoControlProps> = ({
5657
5758 const disableOptions = 2 <= ( translateDisabled ? 1 : 0 ) + ( rotateDisabled ? 1 : 0 ) + ( scaleDisabled ? 1 : 0 )
5859
59- const buttons = [ ]
60- if ( ! translateDisabled )
61- buttons . push (
62- < ToggleButton key = "translate-button" value = { "translate" } >
63- Move
64- </ ToggleButton >
65- )
66- if ( ! rotateDisabled )
67- buttons . push (
68- < ToggleButton key = "rotate-button" value = { "rotate" } >
69- Rotate
70- </ ToggleButton >
71- )
72- if ( ! scaleDisabled )
73- buttons . push (
74- < ToggleButton key = "scale-button" value = { "scale" } >
75- Scale
76- </ ToggleButton >
77- )
60+ const tabs : { label : string ; value : GizmoMode } [ ] = [ ]
61+ if ( ! translateDisabled ) tabs . push ( { label : "Move" , value : "translate" } )
62+ if ( ! rotateDisabled ) tabs . push ( { label : "Rotate" , value : "rotate" } )
63+ if ( ! scaleDisabled ) tabs . push ( { label : "Scale" , value : "scale" } )
7864
7965 useEffect ( ( ) => {
8066 const func = ( ) => {
@@ -98,22 +84,20 @@ const TransformGizmoControl: React.FC<TransformGizmoControlProps> = ({
9884 // If there are no modes enabled, consider the UI pointless.
9985 return disableOptions ? undefined : (
10086 < >
101- < ToggleButtonGroup
102- value = { mode }
103- exclusive
104- onChange = { ( _ , v ) => {
105- if ( v === undefined ) return
106-
107- setMode ( v )
108- gizmo ?. setMode ( v )
109- } }
110- sx = { {
111- ...( sx ?? { } ) ,
112- alignSelf : "center" ,
87+ < Tabs
88+ value = { tabs . findIndex ( t => t . value === mode ) }
89+ onChange = { ( _ , idx ) => {
90+ const next = tabs [ idx ]
91+ if ( ! next ) return
92+ setMode ( next . value )
93+ gizmo ?. setMode ( next . value )
11394 } }
95+ sx = { { ...( sx ?? { } ) , alignSelf : "center" } }
11496 >
115- { buttons }
116- </ ToggleButtonGroup >
97+ { tabs . map ( t => (
98+ < Tab key = { t . value } label = { t . label } />
99+ ) ) }
100+ </ Tabs >
117101 { ! rotateDisabled && (
118102 < Button
119103 className = "self-center"
0 commit comments