@react-nano

Search results:

    Usage with Redux

    Example

    You can just as easily combine it with redux:

    import { useEventSource, useEventSourceListener } from "@react-nano/use-event-source";
    import { Action, Store } from "redux";
    import { useStore } from "@react-nano/redux"; // or: "react-redux";
    
    function MyComponent() {
        const messages = useSelector(getMessages);
        const dispatch = useDispatch();
        const [eventSource, eventSourceStatus] = useEventSource("api/events", true);
        useEventSourceListener(eventSource, ['update'], evt => {
            dispatch(addMessages(JSON.parse(evt.data)));
        }, [dispatch]);
    
        return (
            <div>
                {eventSourceStatus === "open" ? null : <BusyIndicator />}
                {messages.map((msg) => <div>{msg.text}</div>)}
            </div>
        );
    }