expo / dev-plugins

Out-of-tree Expo devtools plugins for packages that haven't adopted the Expo devtools plugin system yet.
MIT License
154 stars 24 forks source link

useApolloClientDevTools should not throw when given `undefined` as client #41

Open MorganDavid opened 5 months ago

MorganDavid commented 5 months ago

our usecase requires loading client in a useEffect after some data has loaded. e.g.

  useEffect(() => {
    (async () => {
      const _persistor = cachePersistorFactory(cache);
      await _persistor.restore();
      const _client = clientFactory(cache, loginProviderRef);
      setCachePersistor(_persistor);
      setClient(_client);
    })();
  }, [loginProviderRef]);

This means we can't use this hook because it throws an error when client is undefined (on the first render) and it's not possible to render hooks conditionally.

Expected Behaviour: useApolloClientDevTools does nothing if client is undefined.