@asianpersonn/time-id
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

Install

npm install rn-click-listener

or

yarn add rn-click-listener

Features

Global ContextProvider for managing click events

import { ClickListener } from 'rn-click-listener';\

Wrap your toplevel component in to provide a context for managing click events\

Hook for un/registering click events

import { useClickListener } from 'rn-click-listener';

const { addClickListener, rmClickListener } = useClickListener();

const clickHandler = (e: GestureResponderEvent) => {
    console.log(e);
};
const ID = '123';

addClickListener(ID, clickHandler);
rmClickListener(ID);

Use 'addClickListener' to add click handlers that will get fired anytime a click is made in the app.
Don't forget to use 'rmClickListener to unregister the click handlers when your component unmounts

Hook for detecting clicks inside and outside of a target component

import React, { useEffect } from 'react';
import { Text, View } from 'react-native';
import { useOnClickOutsideComponent } from 'rn-click-listener';

const ID = '123';

const Component = (props) => (

    const { ref, clickedInside, clickedInsideCount, registerClickInside, reset } = useOnClickOutsideComponent(ID);

    // Listen for clicks inside/outside of component
    useEffect(() => {
        if(clickedInside) console.log('Clicked inside');
        else console.log('Clicked outside';)
    }, [clickedInside]);

    // Listen for subsequent clicks inside component
    useEffect(() => {
        if(clickedInsideCount > 1) console.log('Clicked inside again');
    }, [clickedInsideCount]);
    
    <View ref={ref}>
      <Text>Hello World</Text>
    </View>
);

Use 'useOnClickOutsideComponent' to listen for clicks inside and outside of a component.
This hook will provide a 'ref' object to assign to the component to listen for.

Example Usage

import * as React from 'react';
import { Text, View, StyleSheet } from 'react-native';

import { ClickListener, useOnClickOutsideComponent } from 'rn-click-listener';

export default function App() {

  return (
    <ClickListener>
      <View>

        <Test/>

        <Text>Outside of components</Text>

      </View>
    </ClickListener>
  );
}

const Test = (props) => {

    const { ref, clickedInside, registerClickInside, reset } = useOnClickOutsideComponent('search-bar-test-id');

  return (
    <View ref={ref}>
      <Text>Hello World</Text>
    </View>
  )
};

Package Sidebar

Install

npm i @asianpersonn/time-id

Weekly Downloads

0

Version

1.0.2

License

ISC

Unpacked Size

9.76 kB

Total Files

13

Last publish

Collaborators

  • asianpersonn