import { formatDate } from '@/web/utils/common' import Icon from '@/web/components/Icon' import dayjs from 'dayjs' import { useNavigate } from 'react-router-dom' import useIsMobile from '@/web/hooks/useIsMobile' import { ReactNode, useState } from 'react' import { motion } from 'framer-motion' import DescriptionViewer from '../DescriptionViewer' const Info = ({ title, creatorName, creatorLink, description, extraInfo, isLoading, }: { title?: string creatorName?: string creatorLink?: string description?: string extraInfo?: string | ReactNode isLoading?: boolean }) => { const navigate = useNavigate() const isMobile = useIsMobile() const [isOpenDescription, setIsOpenDescription] = useState(false) return (
{/* Title */} {isLoading ? (
PLACEHOLDER
) : (
{title}
)} {/* Creator */} {isLoading ? (
PLACEHOLDER
) : (
creatorLink && navigate(creatorLink)} className='text-24 font-medium transition-colors duration-300 dark:text-white/40 hover:dark:text-neutral-100' > {creatorName}
)} {/* Extra info */} {isLoading ? (
PLACEHOLDER
) : (
{extraInfo}
)} {/* Description */} {!isMobile && description && ( setIsOpenDescription(true)} > )} setIsOpenDescription(false)} title={title || ''} />
) } export default Info