pmndrs / use-cannon

👋💣 physics based hooks for @react-three/fiber

Home Page:https://cannon.pmnd.rs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Remove internal suspense boundary

alexandernanberg opened this issue · comments

I can't see a good reason why there is a suspense boundary inside the library, this should ideally be handled by consumers for more granular control. E.g. consumer might not want to render null.

function Physics(props: ProviderProps) {
return (
<Suspense fallback={null}>
<Provider {...props} />
</Suspense>
)
}

This would unfortunately be a breaking change, but in the long run I think it's a good one.

Would it be useful to provide a fallback property to the props?

Not really for my use-case tbh, because it doesn't enable composability in the same way.

E.g. imagine this scenario

<Canvas>
	<Suspense fallback={<Loading />}>
		<ComponentThatLoadsAsset />
		<Physics>
			<ComponentThatLoadsAsset />
		</Physics>
	</Suspense>
</Canvas>
commented

i agree, it would be more flexible if it's in userland. it is a breaking change though, would require a new major.

btw @alexandernanberg your example wouldn't work, you can't have raw text or dom nodes within the canvas, but this would be ok:

<Suspense fallback="Loading...">
  <Canvas>	
    <ComponentThatLoadsAsset />
    <Physics>
      <ComponentThatLoadsAsset />
    </Physics>
  </Canvas>
</Suspense>

@drcmda Oh right, good point, was just quickly typing out pseudo-code 😄