import React,{useEffect,useRef} from 'react'; export default function ContextTransitionDialog({busy,error,onSave,onDiscard,onCancel}) { const root=useRef(null); useEffect(()=>{ const previous=document.activeElement; root.current?.querySelector('button')?.focus(); return ()=>previous?.isConnected&&previous.focus(); },[]); function keyboard(e){ if(e.key==='Escape'&&!busy){e.preventDefault();onCancel();} if(e.key!=='Tab')return; const controls=[...root.current.querySelectorAll('button:not(:disabled)')]; if(!controls.length){e.preventDefault();return;} if(e.shiftKey&&document.activeElement===controls[0]){e.preventDefault();controls.at(-1).focus();} else if(!e.shiftKey&&document.activeElement===controls.at(-1)){e.preventDefault();controls[0].focus();} } return
Guarde as alterações, descarte-as ou cancele a mudança de contexto. Guardar usa o formulário e as validações actuais.
{error&&{error}
}