You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, when using toast.promise you can only set a toast's type as a string, eg.:
toast.promise( fetcher, {
success: {
render: ( { data } ) => "Post ${data.title} was successfully created!",
type: "success"
},
error: {
render: "Something went wrong!",
type: "error"
},
})
What is the expected behavior?
It would be nice if type accepted a function that receives the data (just like render), and determine the type based on that data. I'm asking because eg. when requesting data with GraphQL, the request may be successful (ie. the fetcher doesn't throw an error, so the error toast is not used), but the successful response may still contain errors, so I would basically turn the success toast into an error toast, something like this:
toast.promise( fetcher, {
success: {
render: ( { data: result } ) => {
const { data, errors } = result
return errors ? "Something went wrong" : "Post ${data.title} was successfully created!",
},
type: ( { data: result } ) => {
const { data, errors } = result
return errors ? "error" : "success"
},
},
error: {
render: "Something went wrong!",
type: "error"
},
})
I am currently working around this by using a try/catch block and toast.update as explained in #726, but I like the toast.promise signature better :)
The text was updated successfully, but these errors were encountered:
Do you want to request a feature or report a bug?
I want to request a feature
What is the current behavior?
Currently, when using toast.promise you can only set a toast's type as a string, eg.:
What is the expected behavior?
It would be nice if
type
accepted a function that receives the data (just likerender
), and determine the type based on that data. I'm asking because eg. when requesting data with GraphQL, the request may be successful (ie. the fetcher doesn't throw an error, so the error toast is not used), but the successful response may still contain errors, so I would basically turn the success toast into an error toast, something like this:I am currently working around this by using a try/catch block and toast.update as explained in #726, but I like the toast.promise signature better :)
The text was updated successfully, but these errors were encountered: