import React, { useState, useEffect } from "react"; import { SimpleGrid, Box, Image, Text, Badge, Button, Modal, ModalOverlay, ModalContent, ModalHeader, ModalBody, ModalCloseButton, useDisclosure, Input, VStack, Divider, useToast, HStack, Icon, Heading, Center, ModalFooter, Spacer, } from "@chakra-ui/react"; import apiFetch from "@wordpress/api-fetch"; import { templatesScriptData } from "../utils/global"; import PluginStatus from "./PluginStatus"; import { FaHeart } from "react-icons/fa"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import { __, sprintf } from '@wordpress/i18n'; import notFoundImage from "../images/not-found-image.png"; import { IoPlayOutline } from "react-icons/io5"; import { FaRegHeart } from "react-icons/fa"; import { MdOutlineRemoveRedEye } from "react-icons/md"; interface Template { id: number; title: string; slug: string; imageUrl: string; description: string; isPro: boolean; preview_link?: string; addons?: { [key: string]: string }; categories?: string[]; } interface TemplateListProps { selectedCategory: string; templates: Template[]; } const { restURL, security } = templatesScriptData; const LockIcon = (props) => ( ); interface CreateTemplateResponse { success: boolean; data?: { id: number; redirect: string; status: number; }; message?: string; } const TemplateList: React.FC = ({ selectedCategory, templates }) => { const [previewTemplate, setPreviewTemplate] = useState