const fs = require('fs'); const path = require('path'); const filePath = path.join(__dirname, '..', 'components', 'contextual-ai-chat.tsx'); let src = fs.readFileSync(filePath, 'utf8'); // Sync presets buttons const OLD_PRESET_CLICK = `onClick={() => setTranslateTarget(l)}`; const NEW_PRESET_CLICK = `onClick={() => { setTranslateTarget(l); setCustomLangInput(l); }}`; if (src.includes(OLD_PRESET_CLICK)) { src = src.replace(OLD_PRESET_CLICK, NEW_PRESET_CLICK); console.log('Fix 1: Preset buttons sync updated'); } else { console.error('Fix 1: OLD_PRESET_CLICK not found'); process.exit(1); } // Sync input and enable live update const OLD_INPUT_LOGIC = `onChange={e => setCustomLangInput(e.target.value)}\r\n onKeyDown={e => { if (e.key === 'Enter' && customLangInput.trim()) { setTranslateTarget(customLangInput.trim()); setCustomLangInput('') } }}`; // Fallback for different line endings if needed, but let's try matching a smaller part first const OLD_ONCHANGE = `onChange={e => setCustomLangInput(e.target.value)}`; const NEW_ONCHANGE = `onChange={e => { const val = e.target.value; setCustomLangInput(val); setTranslateTarget(val); }}`; const OLD_ONKEYDOWN = `onKeyDown={e => { if (e.key === 'Enter' && customLangInput.trim()) { setTranslateTarget(customLangInput.trim()); setCustomLangInput('') } }}`; const NEW_ONKEYDOWN = `onKeyDown={e => { if (e.key === 'Enter' && translateTarget.trim()) { handleAction(action, translateTarget.trim()); } }}`; if (src.includes(OLD_ONCHANGE)) { src = src.replace(OLD_ONCHANGE, NEW_ONCHANGE); console.log('Fix 2: Input onChange updated'); } else { console.error('Fix 2: OLD_ONCHANGE not found'); process.exit(1); } if (src.includes(OLD_ONKEYDOWN)) { src = src.replace(OLD_ONKEYDOWN, NEW_ONKEYDOWN); console.log('Fix 3: Input onKeyDown updated'); } else { console.error('Fix 3: OLD_ONKEYDOWN not found'); // Try without \r if it failed const altOnKeyDown = OLD_ONKEYDOWN.replace('\r\n', '\n'); if (src.includes(altOnKeyDown)) { src = src.replace(altOnKeyDown, NEW_ONKEYDOWN); console.log('Fix 3: Input onKeyDown updated (alt line ending)'); } else { process.exit(1); } } fs.writeFileSync(filePath, src); console.log('Done!');