UNPKG

rn-inkpad

Version:

<img src="https://res.cloudinary.com/fercloudinary/image/upload/v1715452841/packages/inkpad-banner_acl0xl.png" />

50 lines (49 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useAlertContainer = void 0; const react_1 = require("react"); const subscribers_1 = require("../helpers/subscribers"); const useAlertContainer = () => { const [prompt, setPrompt] = (0, react_1.useState)(); const [isAlert, setIsAlert] = (0, react_1.useState)(false); const [textInput, setTextInput] = (0, react_1.useState)(''); const inputRef = (0, react_1.useRef)(null); (0, react_1.useEffect)(() => { (0, subscribers_1.subscribeToModalChange)((data, alert) => { setPrompt(data); setIsAlert(!!alert); setTextInput(''); }); }, [prompt]); (0, react_1.useEffect)(() => { if (!isAlert) { inputRef.current?.focus(); } }, [prompt]); const handlePress = (cancel = false, callback) => { if (!isAlert) { (0, subscribers_1.notifySubscribers)(cancel ? undefined : { title: textInput, }); } else { if (!!callback) { callback(); (0, subscribers_1.notifySubscribers)(undefined); } else { (0, subscribers_1.notifySubscribers)(cancel ? undefined : prompt); } } }; return { prompt, isAlert, setTextInput, handlePress, inputRef, }; }; exports.useAlertContainer = useAlertContainer;