diff --git a/frontend/src/routes/lesson/[slug]/DeployTab.svelte b/frontend/src/routes/lesson/[slug]/DeployTab.svelte index 4a06f27..df3cc2d 100644 --- a/frontend/src/routes/lesson/[slug]/DeployTab.svelte +++ b/frontend/src/routes/lesson/[slug]/DeployTab.svelte @@ -87,11 +87,28 @@ } async function handleDeploy() { - if (!deployer || !isPaired) { - errorMessage = 'Hubungkan perangkat dulu'; + if (!deployer) { + errorMessage = 'Deployer belum diinisialisasi'; return; } + // Auto re-pair if BLE connection is lost + if (!deployer.isConnected || !isPaired) { + console.log('[DEPLOY] Connection lost, attempting re-pair...'); + try { + deployState = 'pairing'; + deployMessage = 'Re-connecting to device...'; + await deployer.pair(); + isPaired = true; + deployState = 'idle'; + console.log('[DEPLOY] Re-pair successful!'); + } catch (err: any) { + deployState = 'error'; + errorMessage = 'Re-pair gagal: ' + err.message; + return; + } + } + serialActive = false; try {