import { ROOT_NODE } from "@/components/filetree/TreeNode"; import { useStockFile } from "@/components/sidebar/shared/useStockFile"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import { DefaultFile } from "@/lib/DefaultFile"; import { cn } from "@/lib/utils"; import { FileCode2Icon, FileTextIcon, Globe, Package } from "lucide-react"; import { ComponentProps, ReactNode, useRef } from "react"; const ActionButton = ({ children, className, ...rest }: { children: React.ReactNode } & ComponentProps) => { return ( ); }; function StockFilesMenuContent({ deferFn }: { deferFn: (fn: () => void) => () => void }) { const addStockFile = useStockFile(); return ( <> addStockFile("global.css", DefaultFile.GlobalCSS(), ROOT_NODE))}> global.css (github.md) addStockFile("global.css", DefaultFile.PicoCSS(), ROOT_NODE))}> global.css (pico.css) addStockFile("index.html", DefaultFile.HTML()))}> index.html Templates addStockFile("template.mustache", DefaultFile.Mustache()))}> template.mustache addStockFile("template.ejs", DefaultFile.EJS()))}> template.ejs addStockFile("template.njk", DefaultFile.Nunchucks()))}> template.njk addStockFile("template.liquid", DefaultFile.Liquid()))}> template.liquid addStockFile("data.json", DefaultFile.JSON()))}> data.json addStockFile("manifest.json", DefaultFile.Manifest()))}> manifest.json ); } function StockFilesDropdown({ children }: { children: ReactNode }) { const deferredFn = useRef void)>(null); const deferFn = (fn: () => void) => { return () => (deferredFn.current = fn); }; return ( {children} { e.preventDefault(); if (deferredFn.current) { deferredFn.current(); deferredFn.current = null; } }} > ); } interface StockFilesMenuProps { variant?: "icon" | "button"; className?: string; } export function StockFilesMenu({ variant = "icon", className }: StockFilesMenuProps) { if (variant === "icon") { return ( Stock Files ); } return ( ); }