UNPKG

@t1mmen/srtd

Version:

Supabase Repeatable Template Definitions (srtd): 🪄 Live-reloading SQL templates for Supabase DX. Make your database changes reviewable and migrations maintainable! 🚀

38 lines • 1.3 kB
import { Box, Text, useApp, useInput } from 'ink'; import React from 'react'; export default function Quittable(props) { // Use ref to track if component is mounted const { exit } = useApp(); const mounted = React.useRef(true); React.useEffect(() => { return () => { mounted.current = false; }; }, []); useInput((input, key) => { if (!mounted.current) return; if (input.toLowerCase() === 'q' || (key.ctrl && input === 'c')) { try { if (props?.onQuit) { props.onQuit(); } // Exit synchronously exit(); } catch (error) { console.error('Failed to exit cleanly:', error); if (error instanceof Error) { exit(error); } } } }); return (React.createElement(Box, { marginY: 1 }, React.createElement(Text, { dimColor: true }, "Press "), React.createElement(Text, null, "q"), React.createElement(Text, { dimColor: true }, " or "), React.createElement(Text, null, "Ctrl+c"), React.createElement(Text, { dimColor: true }, " to quit"))); } //# sourceMappingURL=Quittable.js.map