import { useClose } from '@coinbase/onchainkit/minikit'; export default function CloseButton() { const close = useClose(); return ( <button onClick={close} className="close-btn"> ✕ Close </button> ); }
Programmatically close the Mini App frame
const handleGameComplete = async () => { await saveScore(finalScore); // Show completion screen briefly setShowCompletion(true); // Auto-close after celebration setTimeout(close, 3000); };
// Instead of navigating back, close the frame const handleCancel = () => { if (hasUnsavedChanges) { confirmAndClose(); } else { close(); } };
if (hasUnrecoverableError) { return ( <div className="error-screen"> <h2>Something went wrong</h2> <p>Please try again later</p> <button onClick={close}>Close</button> </div> ); }
const handleClose = () => { // Clean up cancelPendingRequests(); clearIntervals(); // Track analytics analytics.track('mini_app_closed', { session_duration: Date.now() - sessionStart, completion_state: currentState }); // Close close(); };
useClose
Was this page helpful?