import { CheckCircle, FileVideo, ImageIcon, Music, Paperclip, Video, } from "lucide-react"; import { useRef, useState } from "react"; import Image from "next/image"; import { useParams } from "next/navigation"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; import { Button } from "@/components/ui/button"; import { getFileType, humanizeNumber } from "@/lib/utils"; import { useQueryClient } from "@tanstack/react-query"; import { ProjectWithCommits } from "@/actions/projects"; import { toast } from "sonner"; import Loading from "../loading"; export const Uploader = ({ medias, selected, setSelected, }: { medias?: string[] | null; selected: string[]; setSelected: React.Dispatch>; }) => { const queryClient = useQueryClient(); const { repoId } = useParams<{ repoId: string }>(); const [open, setOpen] = useState(false); const [isUploading, setIsUploading] = useState(false); const [error, setError] = useState(null); const fileInputRef = useRef(null); const getFileIcon = (url: string) => { const fileType = getFileType(url); switch (fileType) { case "image": return ; case "video": return