diff --git a/apps/user/app/(main)/(user)/document/document-button.tsx b/apps/user/app/(main)/(user)/document/document-button.tsx index 113ea8c..9992771 100644 --- a/apps/user/app/(main)/(user)/document/document-button.tsx +++ b/apps/user/app/(main)/(user)/document/document-button.tsx @@ -2,27 +2,26 @@ import { queryDocumentDetail } from '@/services/user/document'; import { Markdown } from '@repo/ui/markdown'; -import { Button } from '@shadcn/ui/button'; +import { formatDate } from '@repo/ui/utils'; +import { Avatar, AvatarFallback } from '@shadcn/ui/avatar'; +import { buttonVariants } from '@shadcn/ui/button'; import { useOutsideClick } from '@shadcn/ui/hooks/use-outside-click'; +import { cn } from '@shadcn/ui/lib/utils'; import { useQuery } from '@tanstack/react-query'; import { AnimatePresence, motion } from 'framer-motion'; import { useEffect, useId, useRef, useState } from 'react'; -interface Item { - id: number; - title: string; -} -export function DocumentButton({ items }: { items: Item[] }) { - const [active, setActive] = useState(null); +export function DocumentButton({ items }: { items: API.DocumentItem[] }) { + const [active, setActive] = useState(null); const id = useId(); const ref = useRef(null); const { data } = useQuery({ - enabled: !!(active as Item)?.id, - queryKey: ['queryDocumentDetail', (active as Item)?.id], + enabled: !!(active as API.DocumentItem)?.id, + queryKey: ['queryDocumentDetail', (active as API.DocumentItem)?.id], queryFn: async () => { const { data } = await queryDocumentDetail({ - id: (active as Item)?.id, + id: (active as API.DocumentItem)?.id, }); return data.data?.content; }, @@ -87,31 +86,48 @@ export function DocumentButton({ items }: { items: Item[] }) { ref={ref} className='bg-muted flex size-full flex-col overflow-auto p-6 sm:rounded' > - { - return ( - // eslint-disable-next-line @next/next/no-img-element - - ); - }, - }} - > - {data || ''} - + {data || ''} ) : null} -
    +
      {items.map((item, index) => ( setActive(item)} - className='flex cursor-pointer flex-col rounded-xl' + className='bg-background hover:bg-accent flex cursor-pointer items-center justify-between rounded border p-4' > - +
      + + + {item.title.split('')[0]} + + +
      + + {item.title} + + + {formatDate(item.updated_at)} + +
      +
      + + 阅读 +
      ))}
    diff --git a/apps/user/app/(main)/(user)/document/tutorial-button.tsx b/apps/user/app/(main)/(user)/document/tutorial-button.tsx index f5fb774..317ef72 100644 --- a/apps/user/app/(main)/(user)/document/tutorial-button.tsx +++ b/apps/user/app/(main)/(user)/document/tutorial-button.tsx @@ -2,8 +2,10 @@ import { getTutorial } from '@/utils/tutorial'; import { Markdown } from '@repo/ui/markdown'; -import { Button } from '@shadcn/ui/button'; +import { Avatar, AvatarFallback } from '@shadcn/ui/avatar'; +import { buttonVariants } from '@shadcn/ui/button'; import { useOutsideClick } from '@shadcn/ui/hooks/use-outside-click'; +import { cn } from '@shadcn/ui/lib/utils'; import { useQuery } from '@tanstack/react-query'; import { AnimatePresence, motion } from 'framer-motion'; import { useEffect, useId, useRef, useState } from 'react'; @@ -90,7 +92,12 @@ export function TutorialButton({ items }: { items: Item[] }) { img: ({ node, className, ...props }) => { return ( // eslint-disable-next-line @next/next/no-img-element - + ); }, }} @@ -101,15 +108,43 @@ export function TutorialButton({ items }: { items: Item[] }) { ) : null} -
      - {items.map((item) => ( +
        + {items.map((item, index) => ( setActive(item)} - className='flex cursor-pointer flex-col rounded-xl' + className='bg-background hover:bg-accent flex cursor-pointer items-center justify-between rounded border p-4' > - +
        + + + {item.title.split('')[0]} + + +
        + + {item.title} + + {/* + {formatDate(item.updated_at)} + */} +
        +
        + + 阅读 +
        ))}