import React, { useEffect, useState } from "react"; import { Card, CardHeader, CardTitle, CardContent, CardFooter, } from "./ui/card"; import { useStore } from "@/store"; import { Skeleton } from "./ui/skeleton"; import { cn } from "@/lib/utils"; import TemplateDialog from "./TemplateDialog"; interface Template { id: string; name: string; description: string; version: string; logo?: string; links: { github?: string; website?: string; docs?: string; }; tags: string[]; } interface TemplateFiles { dockerCompose: string | null; config: string | null; } interface TemplateGridProps { view: "grid" | "rows"; } const TemplateGrid: React.FC = ({ view }) => { const { templates, setTemplates, setTemplatesCount, filteredTemplates, setFilteredTemplates, } = useStore(); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const searchQuery = useStore((state) => state.searchQuery); const selectedTags = useStore((state) => state.selectedTags); const { addSelectedTag } = useStore(); const [selectedTemplate, setSelectedTemplate] = useState