@@ -105,8 +105,8 @@ function isCloseEnough(jointsA: number[], jointsB: number[], maxDistance: number
105105
106106function ArmStatus ( {
107107 editMode
108- } : {
109- editMode : boolean
108+ } : {
109+ editMode : boolean
110110 } ) {
111111 const [ rerenderCount , setRerenderCount ] = useState ( 0 ) ;
112112 const [ linearScale , setLinearScale ] = useState < number | null > ( lastServoLinearScale ) ;
@@ -211,11 +211,11 @@ function ArmStatus({
211211 if ( ! poseName ) return ;
212212
213213 const currentValues = namesAndValues . map ( joint => joint . value ) ;
214-
214+
215215 const savedPosesRaw = localStorage . getItem ( 'custom_arm_poses' ) ;
216216 const savedPoses = savedPosesRaw ? JSON . parse ( savedPosesRaw ) : [ ] ;
217-
218-
217+
218+
219219 const newPose : ArmPose = {
220220 id : Date . now ( ) ,
221221 name : poseName ,
@@ -324,14 +324,12 @@ function PoseRequester({
324324 onSelectPose : ( pose : ArmPose ) => void ;
325325 } ) {
326326 const [ rerenderCount , setRerenderCount ] = useState ( 0 ) ;
327- < < << << < HEAD
328327 const keepAlive = useRef ( false ) ;
329- = === ===
330- const [ keepAlive , setKeepAlive ] = useState ( false ) ;
328+
329+ // const [keepAlive, setKeepAlive] = useState(false);
331330 const [ customPoses , setCustomPoses ] = useState < ArmPose [ ] > ( [ ] ) ;
332331
333332
334- > >>> >>> 9 c33c1a ( edit panel )
335333 const rerender = useCallback ( ( ) => {
336334 setRerenderCount ( ( count ) => count + 1 ) ;
337335 } , [ setRerenderCount ] ) ;
@@ -376,13 +374,13 @@ function PoseRequester({
376374 } , [ ] ) ;
377375
378376 const allPoses : ArmPose [ ] = [
379- ...predefinedPoses . poses . map ( ( p ) => ( {
380- ...p ,
381- isCustom : false
377+ ...predefinedPoses . poses . map ( ( p ) => ( {
378+ ...p ,
379+ isCustom : false
382380 } ) ) ,
383- ...customPoses . map ( ( p ) => ( {
384- ...p ,
385- isCustom : true
381+ ...customPoses . map ( ( p ) => ( {
382+ ...p ,
383+ isCustom : true
386384 } ) )
387385 ] ;
388386
@@ -466,9 +464,9 @@ function PoseRequester({
466464 reader . onload = ( event ) => {
467465 try {
468466 const importedData = JSON . parse ( event . target ?. result as string ) ;
469-
467+
470468 const importedArray = Array . isArray ( importedData ) ? importedData : [ importedData ] ;
471-
469+
472470 const savedPosesRaw = localStorage . getItem ( 'custom_arm_poses' ) ;
473471 let existingPoses : ArmPose [ ] = savedPosesRaw ? JSON . parse ( savedPosesRaw ) : [ ] ;
474472
@@ -487,7 +485,7 @@ function PoseRequester({
487485 } ) ;
488486
489487 localStorage . setItem ( 'custom_arm_poses' , JSON . stringify ( existingPoses ) ) ;
490-
488+
491489 window . dispatchEvent ( new Event ( 'local-poses-update' ) ) ;
492490 alert ( `Successfully imported ${ importedArray . length } pose(s).` ) ;
493491 } catch ( err ) {
@@ -502,13 +500,13 @@ function PoseRequester({
502500 < div className = { styles [ 'pose-requester' ] } >
503501 < div className = { styles [ 'header-container' ] } >
504502 < h2 className = { styles [ 'pose-header' ] } > Pose Requester</ h2 >
505-
503+
506504 { editMode && ( < label className = { styles [ 'import-label' ] } >
507- < input
508- type = "file"
509- accept = ".json"
510- style = { { display : 'none' } }
511- onChange = { handleImportSinglePose }
505+ < input
506+ type = "file"
507+ accept = ".json"
508+ style = { { display : 'none' } }
509+ onChange = { handleImportSinglePose }
512510 />
513511 < div className = { styles [ 'joint-lock' ] } title = "Import Pose JSON" >
514512 < FontAwesomeIcon icon = { faDownload } />
@@ -735,11 +733,11 @@ function EditPanel({
735733
736734 const saved = JSON . parse ( localStorage . getItem ( 'custom_arm_poses' ) || '[]' ) ;
737735 const poseIndex = saved . findIndex ( ( p : ArmPose ) => p . id === pose . id ) ;
738-
736+
739737 if ( poseIndex !== - 1 ) {
740738 const updatedPose = { ...saved [ poseIndex ] , [ field ] : value } ;
741739 saved [ poseIndex ] = updatedPose ;
742-
740+
743741 localStorage . setItem ( 'custom_arm_poses' , JSON . stringify ( saved ) ) ;
744742 window . dispatchEvent ( new Event ( 'local-poses-update' ) ) ;
745743 onChangePose ( { ...pose , [ field ] : value } ) ;
@@ -757,12 +755,12 @@ function EditPanel({
757755 const newArray = currentArray . includes ( jointNum )
758756 ? currentArray . filter ( n => n !== jointNum )
759757 : [ ...currentArray , jointNum ] . sort ( ( a , b ) => a - b ) ;
760-
758+
761759 updatePoseField ( field , newArray ) ;
762760 } ;
763761 function JointGrid ( ) {
764762 interface Jointsprops {
765- data : any ;
763+ data : any ;
766764 name : string ;
767765 } ;
768766 const JointCheckbox = ( { data, name} : Jointsprops ) => {
@@ -810,7 +808,7 @@ function EditPanel({
810808 </ div >
811809 < JointGrid />
812810 < p className = { styles [ 'warn' ] } style = { { visibility : isReadOnly ? 'visible' : 'hidden' } } > ⚠️ Predefined poses cannot be modified.</ p >
813-
811+
814812 < div className = { styles [ 'edit-actions' ] } style = { { opacity : isReadOnly ? 0.3 : 1 , pointerEvents : isReadOnly ? 'none' : 'auto' } } >
815813 < div onClick = { handleRename } className = { styles [ 'edit-button' ] } > Rename</ div >
816814 < div onClick = { handleDelete } className = { styles [ 'edit-button' ] } >
@@ -842,7 +840,7 @@ export default function Arms() {
842840 < div className = { styles [ 'arm-panel' ] } >
843841 < ArmStatus editMode = { isEditMode } />
844842 < div className = { styles [ 'trajectory-and-pose' ] } >
845- < PoseRequester
843+ < PoseRequester
846844 editMode = { isEditMode }
847845 onSelectPose = { ( pose ) => setSelectedPose ( pose ) }
848846 />
0 commit comments