Discussion in Slack:
https://clojurians.slack.com/archives/C035GRLJEP8/p1757520307603569
I think the key points are:
- Accept any IDeref (like a future or promise)
- Attempt to wait on the value for a short period of time (~100ms?) before opting to use the spinner instead until it resolves
- If the IDeref itself returns a viewer, then show that viewer when the value resolves, else use the default viewer for the data type
- Statements lower in a notebook should continue to render even if earlier cells are waiting on the IDeref to resolve
I'm not opinionated about the specifics of the spinner, just looking for a way to load an entire notebook quickly even if some earlier cells take longer to compute and give an indication to the user about what's still in progress.
My specific use case:
A notebook full of db queries and graphs of the results that might run quickly or take a long time. It's an improved user experience if the entire notebook opens and queries that are fast render quickly without being delayed by earlier slower ones.