UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

50 lines 1.99 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useTargetedMessage = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var useTargetedMessage = messageId => { var clearTargetedMessageCall = (0, _react.useRef)(undefined); var _useState = (0, _react.useState)(messageId), _useState2 = (0, _slicedToArray2.default)(_useState, 2), targetedMessage = _useState2[0], setTargetedMessage = _useState2[1]; var _useState3 = (0, _react.useState)(), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), highlightedMessageId = _useState4[0], setHighlightedMessageId = _useState4[1]; var prevTargetedMessageRef = (0, _react.useRef)(undefined); (0, _react.useEffect)(() => { prevTargetedMessageRef.current = targetedMessage; if (targetedMessage) { setHighlightedMessageId(targetedMessage); } }, [targetedMessage]); (0, _react.useEffect)(() => { clearTargetedMessageCall.current = setTimeout(() => { setTargetedMessage(undefined); setHighlightedMessageId(undefined); }, 3000); return () => { clearTargetedMessageCall.current && clearTimeout(clearTargetedMessageCall.current); }; }, []); var setTargetedMessageTimeoutRef = (0, _react.useRef)(messageId => { clearTargetedMessageCall.current && clearTimeout(clearTargetedMessageCall.current); clearTargetedMessageCall.current = setTimeout(() => { setTargetedMessage(undefined); setHighlightedMessageId(undefined); }, 3000); setTargetedMessage(messageId); }); return { highlightedMessageId, prevTargetedMessage: prevTargetedMessageRef.current, setTargetedMessage: setTargetedMessageTimeoutRef.current, targetedMessage }; }; exports.useTargetedMessage = useTargetedMessage; //# sourceMappingURL=useTargetedMessage.js.map