1.0.4 • Published 4 months ago

flow-event v1.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
4 months ago

Install:

npm install flow-event
import EventEmitter, { ISupcription } from 'flow-event'

const event = new EventEmitter()

type T = { title: string }

event.on<T>('message', (data) => { data.title })
event.once<T>('message', (data) => { data.title })
event.addListener<T>('message', (data) => { data.title })
event.emit<T>('message', { title: 'abc' })
event.remove('message')
event.removeAll()
event.removeAllListeners()

import { Text, View } from 'react-native'
import React, { useEffect, useState, Component } from 'react'
type Data = [number, number]
export function ExampleHook() {
    const [count, setCount] = useState(0)
    useEffect(() => {
        const subcription =
            event.addListener<Data>('name', (e, s) => setCount(e))
        return () => {
            subcription.remove()
        }
    }, [])
    return (
        <View>
            <Text onPress={() => event.emit<number>('name', 123)}>
                example {count}
            </Text>
        </View>
    )
}

export class ExampleClass extends Component<{ count }, any> {
    constructor(props) {
        super(props)
        this.state = {
            count: 0
        }
    }
    subcription: ISupcription
    componentDidMount(): void {
        this.subcription =
            event.addListener<number>('name', e => this.setState({ count: e }))
    }
    componentWillUnmount(): void {
        this.subcription.remove()
    }
    render() {
        const { count } = this.state
        return (
            <div>
                example {count}
            </div>
        )
    }
}
1.0.4

4 months ago

1.0.3

6 months ago

1.0.2

6 months ago

1.0.1

6 months ago

1.0.0

6 months ago