import { settings } from '@utils/config';
import Link from 'next/link';
import { useRouter } from 'next/router';
import { useIntl } from 'react-intl';
import styles from './Pagination.module.scss';
const Pagination = ({ baseUrl, total }: { baseUrl: string; total: number }) => {
  const intl = useIntl();
  const { asPath } = useRouter();
  const totalPages = Math.floor(total / settings.postsPerPage);
  const currentPage = asPath.includes('/page/')
    ? Number(asPath.split(`${baseUrl}/page/`)[1])
    : 1;
  const hasPreviousPage = currentPage !== 1;
  const hasNextPage = currentPage !== totalPages;
  const getPreviousPageItem = () => {
    return (
      
        
          
            {intl.formatMessage(
              {
                defaultMessage: '{icon} Previous page',
                description: 'Pagination: previous page link',
              },
              { icon: '←' }
            )}
          
        
      
    );
  };
  const getNextPageItem = () => {
    return (
      
        
          
            {intl.formatMessage(
              {
                defaultMessage: 'Next page {icon}',
                description: 'Pagination: Next page link',
              },
              { icon: '→' }
            )}
          
        
      
    );
  };
  const getPages = () => {
    const pages = [];
    for (let i = 1; i <= totalPages; i++) {
      if (i === currentPage) {
        pages.push({
          id: `page-${i}`,
          link: (
            
              {intl.formatMessage(
                {
                  defaultMessage: 'Page {number}',
                  description: 'Pagination: page number',
                },
                {
                  number: i,
                  a11y: (chunks: string) => (
                    {chunks}
                  ),
                }
              )}
            
          ),
        });
      } else {
        pages.push({
          id: `page-${i}`,
          link: (
            
              
                {intl.formatMessage(
                  {
                    defaultMessage: 'Page {number}',
                    description: 'Pagination: page number',
                  },
                  {
                    number: i,
                    a11y: (chunks: string) => (
                      {chunks}
                    ),
                  }
                )}
              
            
          ),
        });
      }
    }
    return pages;
  };
  const getItems = () => {
    const pages = getPages();
    return pages.map((page) => (
      
        {page.link}
      
    ));
  };
  return (
    
  );
};
export default Pagination;