Skip to content

Instantly share code, notes, and snippets.

@rayrayzayzay
Created July 18, 2022 23:20
Show Gist options
  • Save rayrayzayzay/49edcd246c3fbbf33a84b9f0d8691066 to your computer and use it in GitHub Desktop.
Save rayrayzayzay/49edcd246c3fbbf33a84b9f0d8691066 to your computer and use it in GitHub Desktop.
✅ Our component got longer,
but is no more complex than before
function UserProfile({ request }:
{ request: UserProfileRequest }) {
switch (request.status) {
case "fetching":
return <Spinner />
case "success":
return <UserProfileCard user={request.data} />
case "error":
return (
<ErrorMessage
code={request.statusCode}
message={request.errorMessage}
/>
)
case "refetch-after-error":
return (
<>
<ErrorMessage
code={request.statusCode}
message={request.errorMessage}
/>
<Spinner />
</>
)
case "refetch-after-success":
return <UserProfileCard
isLoading user={request.data} />
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment