Improved loading handling

This commit is contained in:
2023-07-31 14:55:12 +03:00
parent 9b35a54ae9
commit e7327945e3
6 changed files with 85 additions and 35 deletions

View File

@ -3,7 +3,7 @@ import { Container } from 'react-bootstrap'
import { useUser } from '../hooks/api'
import { userCategories } from '../assets/userCategories'
import { BackHeader, CategoryPreview, Points, SignOut } from '../components'
import { gotError } from '../hooks/useFetch'
import { gotError, gotResponse } from '../hooks/useFetch'
function UserPage() {
const user = useUser()
@ -11,16 +11,26 @@ function UserPage() {
return (
<Container style={{ maxWidth: 'calc(100vh*9/16)' }}>
<BackHeader text={
gotError(user) ? (
user.error
gotResponse(user) ? (
gotError(user) ? (
user.error
) : (
`${user.data.name}, с нами с ${new Date(user.data.regDate).toLocaleDateString('ru')}`
)
) : (
`${user.data.name}, с нами с ${new Date(user.data.regDate).toLocaleDateString('ru')}`
'Загрузка...'
)
}>
<SignOut />
</BackHeader>
<Points points={gotError(user) ? -1 : user.data?.points} />
<Points points={
gotResponse(user) ? (
gotError(user) ? -1 : user.data?.points
) : (
'Загрузка...'
)
} />
{userCategories.map(cat => (
<CategoryPreview key={cat} category={cat} />
))}