https://github.com/guptasiddhant/react-trigger
Publish and listen to changes of Tiggers. Implementation of RxJs Subject. `npm i @guptasiddhant/react-trigger`
https://github.com/guptasiddhant/react-trigger
hooks react subscriber trigger
Last synced: 9 months ago
JSON representation
Publish and listen to changes of Tiggers. Implementation of RxJs Subject. `npm i @guptasiddhant/react-trigger`
- Host: GitHub
- URL: https://github.com/guptasiddhant/react-trigger
- Owner: GuptaSiddhant
- Created: 2020-03-12T20:29:59.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-07-20T22:38:05.000Z (over 3 years ago)
- Last Synced: 2024-04-24T19:33:44.527Z (over 1 year ago)
- Topics: hooks, react, subscriber, trigger
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@guptasiddhant/react-trigger
- Size: 26.4 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# React Trigger
Publish and listen to changes of Triggers. Implementation of RxJs Subject.
Requires: React ^16.8 for hooks and RxJS.
## Trigger
Trigger instances can publish information and subscribe/listen to it anywhere else in the program.
_In TypeScript, Pass a PayloadType to let the Trigger know what to expect while observing._
### methods
- **publish**: Publish (set) new payload
- **subscribe**: Subscribe and listen to changes and execute a function.
### example
import { Trigger } from "@guptasiddhant/trigger";
// TypeScript
type PayloadType = string;
const myTrigger = new Trigger();
// JavaScript
const myTrigger = new Trigger();
// somewhere in code
myTrigger.publish("text");
// somewhere else in code
myTrigger.useSubscribe((payload) => console.log(payload));
==or==
useEffect(()=>{
const sub = myTrigger.subscribe((payload) => console.log(payload))
return () => sub.unsubscribe();
}
## useTrigger
Hook to listen to changes of Triggers (multiple)
### params
- **execute**: Function to run on Trigger
- **deps**: Array of Triggers to listen to.
### example
useTrigger((payload) => console.log(payload), [Trigger])
=== or ===
useTrigger((payload) => console.log(payload), [Trigger1, Trigger2])