import { Badge, Box, Button, Center, Heading, HStack, Icon, Image, Input, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, SimpleGrid, Text, useDisclosure, useToast, VStack, } from '@chakra-ui/react'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import apiFetch from '@wordpress/api-fetch'; import { __, sprintf } from '@wordpress/i18n'; import React, { useEffect, useState } from 'react'; import { FaHeart, FaRegHeart } from 'react-icons/fa'; import { IoPlayOutline } from 'react-icons/io5'; import { MdOutlineRemoveRedEye } from 'react-icons/md'; import notFoundImage from '../images/not-found-image.png'; import { templatesScriptData } from '../utils/global'; import PluginStatus from './PluginStatus'; 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