import { Info, Paperclip, ShoppingBag, User, UserCog } from "lucide-react"; import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/router"; import { useCallback } from "react"; import toast from "react-hot-toast"; import { EtichetteDisplayer } from "~/components/etichette"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "~/components/ui/alert-dialog"; import { Button, buttonVariants } from "~/components/ui/button"; import { Popover, PopoverContent, PopoverTrigger, } from "~/components/ui/popover"; import { Separator } from "~/components/ui/separator"; import { UserAvatar } from "~/components/user_avatar"; import { cn } from "~/lib/utils"; import { useChatContext } from "~/providers/ChatProvider"; import { api } from "~/utils/api"; export default function ChatTopbar() { const { chatId, session, userinfo } = useChatContext(); const utils = api.useUtils(); const { mutate: deletechat } = api.chat.deleteChat.useMutation({ onSuccess: async () => { await utils.chat.getActiveChats.invalidate(); await utils.users.getActiveUsersWithoutChat.invalidate(); await router.push("/area-riservata/admin/chats/"); }, }); const router = useRouter(); const { mutate: swap } = api.auth.swapUser.useMutation({ onSuccess: async () => { toast.success("Utente cambiato con successo"); await router.push("/area-riservata/load-page"); }, }); const handleDeleteChat = useCallback(() => { deletechat({ chatId }); }, [chatId, deletechat]); const handleSwapUser = useCallback(() => { swap({ id: userinfo.id }); }, [userinfo, swap]); return (
{!session.isAdmin ? ( Infoalloggi logo ) : ( )}
{!session.isAdmin ? "Chat Infoalloggi" : userinfo.username} {session.isAdmin && }
Allegati {session.isAdmin && ( )}
); } const AdminPopover = ({ handleSwapUser, handleDeleteChat, }: { handleSwapUser: () => void; handleDeleteChat: () => void; }) => { const { userinfo } = useChatContext(); return (
Profilo Ordini Allegati Sei assolutamente sicuro? Questa azione non può essere annullata. Questo eliminerà definitivamente la chat e rimuoverà i dati dai nostri server. Annulla Continua
); };