From 0a8109bbc472fd6a0d6bdaa3df98ccce2dc203cf Mon Sep 17 00:00:00 2001 From: "web@ppanel" Date: Sun, 17 Nov 2024 13:23:55 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=84=20style(document):=20Update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../(user)/document/document-button.tsx | 68 ++++++++++++------- .../(user)/document/tutorial-button.tsx | 49 +++++++++++-- 2 files changed, 84 insertions(+), 33 deletions(-) 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)} + */} +
        +
        + + 阅读 +
        ))}