toss / suspensive

Manage asynchronous operations, timing, error handling and detecting intersection of elements easily (one of TanStack Query's community resources)
https://suspensive.org
MIT License
528 stars 51 forks source link

[Feature]: What is Suspensive? Suspensive support all suspensive things. intersection observer, suspense, delay, error-boundary #1072

Closed manudeli closed 3 months ago

manudeli commented 3 months ago

Package Scope

etc

Description

We should rethink about suspensive

We not only support suspense, suspensive things delay, intersection observer, error-boundary, etc.

Possible Solution

No response

etc.

No response

ojj1123 commented 3 months ago

Hi. I'm interested in this project. Thanks for your great works. As I see, recently some packages such as @suspensive/jotai was added to this project or there are the plans yet like @suspensive/intersection, @suspensive/relay and so on.

So I have the questions.

  1. This library will support ONLY the features related with React's suspense in the future? (I feel like the name, suspensive is to deal with Suspense as well. 😀)
  2. I was wondering all of this new features that are released and planing recently, are needed from toss products?
manudeli commented 3 months ago

This library will support ONLY the features related with React's suspense in the future? (I feel like the name, suspensive is to deal with Suspense as well. 😀)

In my personal opinion, No. At first time I made this Suspensive package, we only focus on suspense. But recently, I realized that in order to easily guarantee the situation we want, we often need to interrupt the progress of React's Children's render with promises, times, viewport and errors or etc. So, I think the name Suspensive should not be limited to supporting only Suspense. and https://dictionary.cambridge.org/dictionary/english/suspensive When I thought about the meaning of this word, I realized that it does not support only Suspense. So, I would like to call all the things that guarantee the undetermined as Suspensive interfaces

However, currently, I believes that approaching users with Suspensive libraries as package related with React Suspense is an easy-to-understand approach, but I believe that a gradual expansion of its role is necessary.

I was wondering all of this new features that are released and planing recently, are needed from toss products?

Since there are too many Toss team members besides me and too many Toss products, I cannot give an exact answer to this question on their behalf. However, we are developing the features we expect to be necessary in advance, and the hit rate is quite good. Toss products already rely on the Suspensive library in more than 10 projects, and we are working in consultation with the Toss front-end platform team to further expand it.(I'm not one of Toss fron-end platform team) and Suspensive care not only toss's product suspensive cases, also all world products' suspensive cases.

I don't know if I gave you the answer you wanted. If you clarify the intent of this question, I may be able to answer more clearly.

ojj1123 commented 3 months ago

Oh, thanks for your kind explaination. 👍 Recently this library was making other packages, so I was just wondering what's your thought on this library. 😄

manudeli commented 3 months ago

I updated description of repository

Suspensive: Packages for asynchronous operations, timing, error handling, viewport control, and caching (one of Tanstack Query community resources)

image