@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>
      );
    }