import { useEffect, useState } from 'react'
import { useTheme } from 'nextra-theme-docs';
import styles from './Packages.module.css';
const Packages = () => {
const [CurrentSearchQuery, setCurrentSearchQuery] = useState('*');
const [currentSearch, setCurrentSearch] = useState([]);
const [currentPage, setCurrentPage] = useState(1);
const handleSearchChange = async (value) => {
if (value === "") {setCurrentSearch([]);return;}
// https://pms-xdib.onrender.com
const response = await fetch(`https://pms-xdib.onrender.com/search/${value}/${currentPage}`);
const data = await response.json();
if (data && data.items) {
if (data.items.length === 0 && currentPage > 1) {
setCurrentPage(currentPage - 1);
return;
}
const items = data.items.map((item, i) => {
return (
{item.name}
{item.version}
)
});
setCurrentSearch(items);
}
};
const filters = {setCurrentSearchQuery(event.target.value)}} />;
const handlePrevClick = () => {
setCurrentPage(prev => prev > 1 ? prev-1 : prev);
};
const handleNextClick = () => {
setCurrentPage(prev => prev+1);
};
useEffect(() => {
const ac = setTimeout(() => {handleSearchChange(CurrentSearchQuery!=='' ? CurrentSearchQuery : '*')}, 600);
return () => {
clearTimeout(ac);
}
}, [CurrentSearchQuery]);
useEffect(() => {
const ac = setTimeout(() => {
handleSearchChange(CurrentSearchQuery);
}, 300);
return () => {
clearTimeout(ac);
}
}, [currentPage]);
return (
<>
{filters}