Update script-terminal-modal.tsx

This commit is contained in:
MacRimi
2025-12-11 18:19:38 +01:00
parent eb03262abc
commit 90fedbf9a2

View File

@@ -68,6 +68,9 @@ export function ScriptTerminalModal({
const [isResizing, setIsResizing] = useState(false) const [isResizing, setIsResizing] = useState(false)
const resizeBarRef = useRef<HTMLDivElement>(null) const resizeBarRef = useRef<HTMLDivElement>(null)
// Debug visual para tablets
const [debugInfo, setDebugInfo] = useState<string[]>([])
const terminalContainerRef = useRef<HTMLDivElement>(null) const terminalContainerRef = useRef<HTMLDivElement>(null)
const sendKey = useCallback((key: string) => { const sendKey = useCallback((key: string) => {
@@ -388,6 +391,10 @@ export function ScriptTerminalModal({
e.preventDefault() e.preventDefault()
e.stopPropagation() e.stopPropagation()
const debugMsg = `[${new Date().toLocaleTimeString()}] Resize start - Type: ${e.type}, isMobile: ${isMobile}, isTablet: ${isTablet}`
console.log(debugMsg)
setDebugInfo(prev => [...prev.slice(-4), debugMsg])
setIsResizing(true) setIsResizing(true)
// Detectar si es touch o mouse // Detectar si es touch o mouse
@@ -395,11 +402,27 @@ export function ScriptTerminalModal({
const startY = clientY const startY = clientY
const startHeight = modalHeight const startHeight = modalHeight
const debugMsg2 = `Start Y: ${startY}, Start height: ${startHeight}`
console.log(debugMsg2)
setDebugInfo(prev => [...prev.slice(-4), debugMsg2])
let lastY = startY
let moveCount = 0
const handleMove = (moveEvent: MouseEvent | TouchEvent) => { const handleMove = (moveEvent: MouseEvent | TouchEvent) => {
moveEvent.preventDefault()
moveEvent.stopPropagation()
const currentY = "touches" in moveEvent ? moveEvent.touches[0].clientY : moveEvent.clientY const currentY = "touches" in moveEvent ? moveEvent.touches[0].clientY : moveEvent.clientY
const deltaY = currentY - startY const deltaY = currentY - startY
const newHeight = Math.max(300, Math.min(window.innerHeight - 100, startHeight + deltaY)) const newHeight = Math.max(300, Math.min(window.innerHeight - 100, startHeight + deltaY))
moveCount++
if (moveCount % 5 === 0) {
console.log(`Move #${moveCount} - currentY: ${currentY}, deltaY: ${deltaY}, newHeight: ${newHeight}`)
}
lastY = currentY
setModalHeight(newHeight) setModalHeight(newHeight)
if (fitAddonRef.current && termRef.current && wsRef.current?.readyState === WebSocket.OPEN) { if (fitAddonRef.current && termRef.current && wsRef.current?.readyState === WebSocket.OPEN) {
@@ -419,20 +442,26 @@ export function ScriptTerminalModal({
} }
const handleEnd = () => { const handleEnd = () => {
const debugMsg3 = `Resize end - Final height: ${modalHeight}, Total moves: ${moveCount}, Last Y: ${lastY}`
console.log(debugMsg3)
setDebugInfo(prev => [...prev.slice(-4), debugMsg3])
setIsResizing(false) setIsResizing(false)
document.removeEventListener("mousemove", handleMove as any) document.removeEventListener("mousemove", handleMove as any, false)
document.removeEventListener("mouseup", handleEnd) document.removeEventListener("mouseup", handleEnd, false)
document.removeEventListener("touchmove", handleMove as any) document.removeEventListener("touchmove", handleMove as any, false)
document.removeEventListener("touchend", handleEnd) document.removeEventListener("touchend", handleEnd, false)
document.removeEventListener("touchcancel", handleEnd, false)
localStorage.setItem("scriptModalHeight", modalHeight.toString()) localStorage.setItem("scriptModalHeight", modalHeight.toString())
} }
document.addEventListener("mousemove", handleMove as any) document.addEventListener("mousemove", handleMove as any, false)
document.addEventListener("mouseup", handleEnd) document.addEventListener("mouseup", handleEnd, false)
document.addEventListener("touchmove", handleMove as any, { passive: false }) document.addEventListener("touchmove", handleMove as any, { passive: false, capture: false })
document.addEventListener("touchend", handleEnd) document.addEventListener("touchend", handleEnd, false)
document.addEventListener("touchcancel", handleEnd, false)
} }
const sendCommand = (command: string) => { const sendCommand = (command: string) => {
@@ -463,6 +492,15 @@ export function ScriptTerminalModal({
</div> </div>
</div> </div>
{/* Debug panel - solo visible en tablets */}
{isTablet && debugInfo.length > 0 && (
<div className="bg-yellow-900/50 border-b border-yellow-700 p-2 text-xs font-mono text-yellow-200 max-h-20 overflow-y-auto">
{debugInfo.map((info, i) => (
<div key={i}>{info}</div>
))}
</div>
)}
<div className="overflow-hidden relative flex-1"> <div className="overflow-hidden relative flex-1">
<div ref={terminalContainerRef} className="w-full h-full" /> <div ref={terminalContainerRef} className="w-full h-full" />