"use client" import { cn } from "@/lib/utils"; import { Channel, ChannelType, MemberRole, Server } from "@prisma/client"; import { Edit, Hash, Lock, Mic, Trash, Video } from "lucide-react"; import { useParams, useRouter } from "next/navigation"; import { ActionTooltip } from "@/components/action-tooltip"; import { ModalType, useModal } from "@/hooks/use-modal-store"; interface ServerChannelProps { channel: Channel; server: Server; role?: MemberRole; } const iconMap = { [ChannelType.TEXT]: Hash, [ChannelType.AUDIO]: Mic, [ChannelType.VIDEO]: Video } export const ServerChannel = ({ channel, server, role }: ServerChannelProps) => { const { onOpen } = useModal(); const params = useParams(); const router = useRouter(); const Icon = iconMap[channel.type]; const onClick = () => { router.push(`/servers/${params?.serverId}/channels/${channel.id}`); } const onAction = (e: React.MouseEvent, action: ModalType) => { e.stopPropagation(); onOpen(action, { channel, server }); } return ( ) }