react-native-event-manager
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

react-native-event-manager

The React Native Event Manager is a utility library designed to simplify event handling and management in React Native applications. It provides a centralized event management system that allows components to communicate efficiently through events.

Installation

npm install react-native-event-manager

Usage

The ComponentA checks for changes in the 'onUpdate' state

import { useOnEvent } from 'react-native-event-manager'

function ComponentA(): JSX.Element {

  const [value, setValue] = useState(-1)
  
  useOnEvent('onUpdate', (newValue) => {
    setValue(newValue)
  })

  return(
    <Text>{value}</Text>
  )
}

The ComponentB notify a change to the 'onUpdate' state

import { notifyEvent } from 'react-native-event-manager'

function ComponentB(): JSX.Element {

  const [count, setCount] = useState(0)

  const handlePress = () => {
    notifyEvent('onUpdate', count)
    setCount(count + 1)
  }

  return(
    <Button title='Send' onPress={handlePress}/>
  )
}

EventManager Class

constructor()

Initializes the EventManager instance.

get()

Retrieves the singleton instance of the EventManager.

getListener(index: number): EventListener | undefined

Retrieves a listener at the specified index.

getListenerCount(): number

Returns the number of registered listeners.

removeAllListener(eventName: string | null): boolean

Removes all listeners for the specified event name. If eventName is null, removes all listeners.

remove(listener: EventListener): boolean

Removes the specified listener from the event manager.

sync(eventName: string): Promise<V | null>

Returns a Promise that resolves with the value of the next occurrence of the specified event.

on(eventName: string, callback: Callback): EventListener

Subscribes a listener to the specified event. Returns the created EventListener.

once(eventName: string, callback: Callback): EventListener

Subscribes a listener to the specified event, automatically removing it after the first occurrence. Returns the created EventListener.

notify(eventName: string, value?: V): void

Notifies all listeners of the specified event with an optional value.

EventListener Class

constructor(eventManager: EventManager, name: string, callback: Callback)

Initializes an EventListener instance with the specified event manager, event name, and callback function.

remove()

Removes the listener from the event manager.

update(value?: T)

Notifies all registered callbacks with an optional value.

useOnEvent Function

useOnEvent(eventName: string, callback: Callback)

A React hook for subscribing to a specific event. Automatically removes the listener on component unmount.

useOnEvents Function

useOnEvents(observers: { [key: string]: Callback; })

A React hook for subscribing to multiple events specified in the observers object. Automatically removes all listeners on component unmount.

notifyEvent Function

notifyEvent(eventName: string, value?: V): void

Notifies all listeners of the specified event with an optional value.

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with create-react-native-library

Package Sidebar

Install

npm i react-native-event-manager

Weekly Downloads

4

Version

0.1.2

License

MIT

Unpacked Size

37.9 kB

Total Files

10

Last publish

Collaborators

  • jbmx