"use client" import { DialogDescription } from "@radix-ui/react-dialog" import { ExternalLink, PlusCircle } from "lucide-react" import Link from "next/link" import { useState } from "react" import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog" import { Dropzone, DropzoneContent, DropzoneEmptyState } from "@/components/ui/shadcn-io/dropzone" import { REPO_PATH } from "@/constants" export const ISSUE_TEMPLATES = [ { id: "add_monochrome_icon", name: "Add light & dark icon", description: "Submit a new icon with both light and dark versions for optimal theme compatibility.", url: `${REPO_PATH}/issues/new?template=add_monochrome_icon.yml`, }, { id: "add_normal_icon", name: "Add normal icon", description: "Submit a new icon that works well across both light and dark themes.", url: `${REPO_PATH}/issues/new?template=add_normal_icon.yml`, }, { id: "update_monochrome_icon", name: "Update light & dark icon", description: "Improve an existing icon by updating both light and dark versions.", url: `${REPO_PATH}/issues/new?template=update_monochrome_icon.yml`, }, { id: "update_normal_icon", name: "Update normal icon", description: "Improve an existing icon that works across both light and dark themes.", url: `${REPO_PATH}/issues/new?template=update_normal_icon.yml`, }, { id: "blank_issue", name: "Something else", description: "Create a custom issue for other suggestions, bug reports, or improvements.", url: `${REPO_PATH}/issues/new?template=BLANK_ISSUE`, }, ] export function IconSubmissionContent({ onClose }: { onClose?: () => void }) { const [files, setFiles] = useState() const [filePreview, setFilePreview] = useState() const handleDrop = (files: File[]) => { console.log(files) setFiles(files) if (files.length > 0) { const reader = new FileReader() reader.onload = (e) => { if (typeof e.target?.result === 'string') { setFilePreview(e.target?.result) } } reader.readAsDataURL(files[0]) } } return (
{/* Dropzone Section */}

Upload Icon Files

{filePreview && (
Preview
)}
{files && files.length > 0 && (
{files.length} file(s) selected
)}
{/* Divider */}

Or submit via GitHub issue:

{/* Issue Templates */}
{ISSUE_TEMPLATES.map((template) => ( ))}
) } export function IconSubmissionForm({ trigger, onClick }: { trigger?: React.ReactNode, onClick?: () => void }) { const [open, setOpen] = useState(false) return ( {trigger ? ( {trigger} ) : ( )} Submit an icon Select an option below to submit or update an icon.
setOpen(false)} />
) }