"use client" import type { JSX } from "react" import moment from "moment" import { FunctionComponent } from "react" import { AvatarUpload, ChangePasswordForm, EditProfileForm, LogoutButton, } from "@features/profile" import api from "@shared/api" import { useBreadcrumbs } from "@shared/context/BreadcrumbsContext" import { StaticLoader } from "@shared/ui/Loader" import { Card } from "@shared/ui" import { IProfilePageProps } from "./ProfilePage.d" import styles from "./ProfilePage.module.scss" export const ProfilePage: FunctionComponent< IProfilePageProps > = (): JSX.Element => { useBreadcrumbs([{ label: "Profile" }]) const { data: user, isLoading, refetch, } = api.useQuery("get", "/api/users/me/") const { mutate: updateUser } = api.useMutation( "patch", "/api/users/{user_id}/", ) const handleAvatarChange = (url: string) => { if (!user) return updateUser( { params: { path: { user_id: user.id } }, body: { avatar: url }, }, { onSuccess: () => refetch() }, ) } if (isLoading) return if (!user) { return (

Не удалось загрузить данные пользователя

) } return (

Аккаунт

Логин {user.username}
Дата регистрации {moment(user.date_joined).format("DD.MM.YYYY")}
Статус {user.is_active ? "Активен" : "Неактивен"}
) }