import clipboardCopy from "clipboard-copy"; import { appName } from "../../../lib/app-info"; import { addNotification } from "../../../lib/notifications"; type Props = { pin: string; cancelConnection: () => void; }; const LinkDevice = ({ pin, cancelConnection }: Props) => { const handleCancelConnection = () => cancelConnection(); const handleCopyCode = async () => { await clipboardCopy(pin); addNotification({ msg: 'Copied to clipboard', type: 'success' }); }; return ( <> <input type="checkbox" id="my-modal-5" defaultChecked className="modal-toggle" /> <div className="modal"> <div className="modal-box w-narrowModal relative text-center dark:border-slate-600 dark:border"> <div className="grid grid-flow-row auto-rows-max gap-7"> <h3 className="text-base">Connect to {appName}</h3> <div className="grid grid-flow-row auto-rows-max gap-4 justify-items-center"> {pin && ( <span onClick={handleCopyCode} className="btn text-base-100 hover:text-base-100 bg-base-content hover:bg-base-content border-0 btn-lg rounded-full text-deviceCode tracking-[.18em] w-3/4 cursor-pointer font-mono font-light" > {pin} </span> )} <span className="text-sm text-left"> Enter this code on your connected device. </span> <div className="grid grid-flow-col auto-cols-max gap-4 justify-center items-center text-slate-500"> <span className="rounded-lg border-t-2 border-l-2 border-slate-600 dark:border-slate-50 w-4 h-4 block animate-spin" /> Waiting for a response... </div> </div> <div> <button className="btn btn-outline text-base mt-4" onClick={handleCancelConnection} > Cancel Request </button> </div> </div> </div> </div> </> ); }; export default LinkDevice;