import { gql } from '@apollo/client'; import { Avatar } from '@app/client/components/ui/avatar'; import { userFragment } from '@app/client/fragments'; import { toFormattedDate } from '@app/client/helpers'; import { useIdentity } from '@app/client/hooks/identity'; import { useToastMutation } from '@app/client/hooks/useToastMutation'; import { useUserOneQuery } from '@app/client/hooks/useUserOneQuery'; import { Button, Card, Heading, HStack, Icon, SkeletonCircle, SkeletonText, Stack, Text, Textarea } from '@chakra-ui/react'; import { UserProfileUpdateMutation } from '@generated/types'; import { createFileRoute } from '@tanstack/react-router'; import { useState } from 'react'; export const Route = createFileRoute('/profile/$username')({ component: RouteComponent }); function RouteComponent() { const { username } = Route.useParams(); const { data } = useUserOneQuery({ input: { username } }); if (data == null) return ; return ( ); } function UserOverview({ user }: { readonly user: { readonly id: string; readonly username: string; readonly description?: string | null; readonly createdAt: string; }; }) { const identity = useIdentity(); const { update: userUpdate } = useToastMutation({ mutation: userUpdateMutation, successMsg: 'Profile updated successfully!' }); const [isEditMode, setIsEditMode] = useState(false); const [description, setDescription] = useState(user.description ?? ''); return ( {user.username} joined: {toFormattedDate({ value: user.createdAt })} {identity != null && isEditMode && ( )} {!isEditMode && identity?.data.id === user.id && ( )} {isEditMode ? (