import React, { useState } from 'react'; import { Move } from 'lucide-react'; import { RobotTarget, AxisPosition } from '../types'; import { PanelHeader } from './common/PanelHeader'; import { TechButton } from './common/TechButton'; const MOCK_POSITIONS: AxisPosition[] = [ { id: 'p1', name: 'Home Position', axis: 'X', value: 0, speed: 100, acc: 100, dec: 100 }, { id: 'p2', name: 'Pick Pos A', axis: 'X', value: -1.5, speed: 500, acc: 200, dec: 200 }, { id: 'p3', name: 'Place Pos B', axis: 'X', value: 1.5, speed: 500, acc: 200, dec: 200 }, { id: 'p4', name: 'Scan Index', axis: 'X', value: 0.5, speed: 300, acc: 100, dec: 100 }, { id: 'py1', name: 'Rear Limit', axis: 'Y', value: -1.5, speed: 200, acc: 100, dec: 100 }, { id: 'pz1', name: 'Safe Height', axis: 'Z', value: 0, speed: 50, acc: 50, dec: 50 }, ]; interface MotionPanelProps { robotTarget: RobotTarget; onMove: (axis: 'X' | 'Y' | 'Z', val: number) => void; } export const MotionPanel: React.FC = ({ robotTarget, onMove }) => { const [axis, setAxis] = useState<'X' | 'Y' | 'Z'>('X'); return (
{['X', 'Y', 'Z'].map(a => ( ))}
Current Position
{robotTarget[axis.toLowerCase() as 'x' | 'y' | 'z'].toFixed(3)} mm
{MOCK_POSITIONS.filter(p => p.axis === axis).map(p => (
{p.name}
))}
onMove(axis, robotTarget[axis.toLowerCase() as 'x' | 'y' | 'z'] - 0.1)}>- onMove(axis, robotTarget[axis.toLowerCase() as 'x' | 'y' | 'z'] + 0.1)}>+
); };