Allow linking to comments/markets in profile
This commit is contained in:
parent
ce62edbc8c
commit
f07107ad49
|
@ -1,6 +1,7 @@
|
|||
import clsx from 'clsx'
|
||||
import Link from 'next/link'
|
||||
import { useState } from 'react'
|
||||
import { Row } from './row'
|
||||
|
||||
type Tab = {
|
||||
title: string
|
||||
|
@ -10,8 +11,13 @@ type Tab = {
|
|||
href?: string
|
||||
}
|
||||
|
||||
export function Tabs(props: { tabs: Tab[]; defaultIndex?: number }) {
|
||||
const { tabs, defaultIndex } = props
|
||||
export function Tabs(props: {
|
||||
tabs: Tab[]
|
||||
defaultIndex?: number
|
||||
className?: string
|
||||
onClick?: (tabName: string) => void
|
||||
}) {
|
||||
const { tabs, defaultIndex, className, onClick } = props
|
||||
const [activeIndex, setActiveIndex] = useState(defaultIndex ?? 0)
|
||||
const activeTab = tabs[activeIndex]
|
||||
|
||||
|
@ -28,19 +34,21 @@ export function Tabs(props: { tabs: Tab[]; defaultIndex?: number }) {
|
|||
e.preventDefault()
|
||||
}
|
||||
setActiveIndex(i)
|
||||
onClick?.(tab.title)
|
||||
}}
|
||||
className={clsx(
|
||||
activeIndex === i
|
||||
? 'border-indigo-500 text-indigo-600'
|
||||
: 'border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700',
|
||||
'cursor-pointer whitespace-nowrap border-b-2 py-4 px-1 text-sm font-medium'
|
||||
'cursor-pointer whitespace-nowrap border-b-2 py-3 px-1 text-sm font-medium',
|
||||
className
|
||||
)}
|
||||
aria-current={activeIndex === i ? 'page' : undefined}
|
||||
>
|
||||
{tab.tabIcon ? (
|
||||
<span className="mr-2">{tab.tabIcon}</span>
|
||||
) : null}
|
||||
{tab.title}
|
||||
<Row className={'items-center justify-center gap-1'}>
|
||||
{tab.tabIcon && <span> {tab.tabIcon}</span>}
|
||||
{tab.title}
|
||||
</Row>
|
||||
</a>
|
||||
</Link>
|
||||
))}
|
||||
|
|
|
@ -9,7 +9,7 @@ import Custom404 from '../404'
|
|||
export default function UserProfile() {
|
||||
const router = useRouter()
|
||||
const [user, setUser] = useState<User | null | 'loading'>('loading')
|
||||
const { username } = router.query as { username: string }
|
||||
const { username, tab } = router.query as { username: string; tab: string }
|
||||
useEffect(() => {
|
||||
if (username) {
|
||||
getUserByUsername(username).then(setUser)
|
||||
|
@ -21,7 +21,11 @@ export default function UserProfile() {
|
|||
if (user === 'loading') return <></>
|
||||
|
||||
return user ? (
|
||||
<UserPage user={user} currentUser={currentUser || undefined} />
|
||||
<UserPage
|
||||
user={user}
|
||||
currentUser={currentUser || undefined}
|
||||
defaultTabIndex={tab === 'Comments' || tab === 'comments' ? 1 : 0}
|
||||
/>
|
||||
) : (
|
||||
<Custom404 />
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue
Block a user