import clsx from 'clsx' import { PencilIcon } from '@heroicons/react/outline' import { User } from 'common/user' import { useEffect, useState } from 'react' import { useFollowers, useFollows } from 'web/hooks/use-follows' import { prefetchUsers } from 'web/hooks/use-user' import { FollowList } from './follow-list' import { Col } from './layout/col' import { Modal } from './layout/modal' import { Tabs } from './layout/tabs' export function FollowingButton(props: { user: User }) { const { user } = props const [open, setOpen] = useState(false) const followingIds = useFollows(user.id) const followerIds = useFollowers(user.id) return ( <>
setOpen(true)} > {followingIds?.length ?? ''}{' '} Following
) } export function EditFollowingButton(props: { user: User; className?: string }) { const { user, className } = props const [open, setOpen] = useState(false) const followingIds = useFollows(user.id) const followerIds = useFollowers(user.id) return (
setOpen(true)} >
{followingIds?.length ?? ''}{' '} Following
) } export function FollowersButton(props: { user: User }) { const { user } = props const [isOpen, setIsOpen] = useState(false) const followingIds = useFollows(user.id) const followerIds = useFollowers(user.id) return ( <>
setIsOpen(true)} > {followerIds?.length ?? ''}{' '} Followers
) } function FollowingFollowersDialog(props: { user: User followingIds: string[] followerIds: string[] defaultTab: 'following' | 'followers' isOpen: boolean setIsOpen: (isOpen: boolean) => void }) { const { user, followingIds, followerIds, defaultTab, isOpen, setIsOpen } = props useEffect(() => { prefetchUsers([...followingIds, ...followerIds]) }, [followingIds, followerIds]) return (
{user.name}
@{user.username}
, }, { title: 'Followers', content: , }, ]} defaultIndex={defaultTab === 'following' ? 0 : 1} />
) }