import { gql, useQuery } from '@apollo/client'; import { BookOverviewTabs } from '@app/client/components/BookOverviewTabs'; import { bookListQuery } from '@app/client/components/BookSearchList'; import { bookFragment } from '@app/client/fragments'; import { useIdentity } from '@app/client/hooks/identity'; import { useToastMutation } from '@app/client/hooks/useToastMutation'; import { Button, Input, NativeSelect, Skeleton, Stack, Textarea } from '@chakra-ui/react'; import { BookDetailsQuery, WorkingProgressStatus } from '@generated/types'; import { useNavigate } from '@tanstack/react-router'; import { createFileRoute } from '@tanstack/react-router'; import { useState } from 'react'; export const Route = createFileRoute('/work/book/$bookId/overview/details')({ component: RouteComponent }); function RouteComponent() { const { bookId: id } = Route.useParams(); const identity = useIdentity(); const navigate = useNavigate(); const { data } = useQuery(bookQuery, { variables: { id } }); const { update: bookUpdate } = useToastMutation({ mutation: bookUpdateMutation, successMsg: 'Book updated successfully' }); const { update: bookDelete } = useToastMutation({ mutation: bookDeleteMutation, successMsg: 'Book deleted successfully', refetchQueries: [bookListQuery] }); const [title, setTitle] = useState(data?.bookOne.title); const [description, setDescription] = useState(data?.bookOne.description); const [progress, setProgress] = useState( data?.bookOne.progressStatus ); if (data == null) return ; return ( <> setTitle(event.currentTarget.value)} placeholder="title" maxLength={60} /> { const updatedStatus = event.currentTarget.value; ensureProgressStatus(updatedStatus); setProgress(updatedStatus); }} >