@livelike/react-native
Version:
LiveLike React Native package
27 lines (23 loc) • 800 B
text/typescript
import { useEffect, useRef } from 'react';
import { useAnalytics } from './useAnalytics';
import { Keyboard } from 'react-native';
export function useTrackKeyboardEffect() {
const inputVisibleRef = useRef(false);
const { trackEvent } = useAnalytics();
useEffect(() => {
const showSubscription = Keyboard.addListener('keyboardDidShow', () => {
if (!inputVisibleRef.current) {
inputVisibleRef.current = true;
trackEvent('Keyboard Selected', { type: 'Standard' });
}
});
const hideSubscription = Keyboard.addListener('keyboardDidHide', () => {
inputVisibleRef.current = false;
trackEvent('Keyboard Hidden', { type: 'Standard' });
});
return () => {
showSubscription.remove();
hideSubscription.remove();
};
}, []);
}