diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index ea7d74c..acafeb5 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -84,10 +84,12 @@ const Index = () => { const [notesPage, setNotesPage] = useState(0); const [todosActivePage, setTodosActivePage] = useState(0); const [todosCompletedPage, setTodosCompletedPage] = useState(0); + const [rssPage, setRssPage] = useState(0); const NOTES_PER_PAGE = 5; const TODOS_PER_PAGE = 10; - const RSS_MAX_ARTICLES = 8; + const RSS_MAX_ARTICLES = 14; + const RSS_PER_PAGE = 7; // Debounce timer for auto-save const saveTimerRef = useRef(null); @@ -169,7 +171,7 @@ const Index = () => { const loadRssArticles = async () => { try { - const articles = await RssService.getArticles(15); + const articles = await RssService.getArticles(14); if (Array.isArray(articles)) { setRssArticles(articles); } @@ -619,6 +621,10 @@ const Index = () => { setTodosCompletedPage(0); }, [todos.length]); + useEffect(() => { + setRssPage(0); + }, [rssArticles.length]); + // Pagination for todos const activeTodos = todos.filter(t => !t.completed); const completedTodos = todos.filter(t => t.completed); @@ -633,6 +639,13 @@ const Index = () => { (todosCompletedPage + 1) * TODOS_PER_PAGE ); + // Pagination for RSS + const totalRssPages = Math.ceil(rssArticles.length / RSS_PER_PAGE); + const paginatedRssArticles = rssArticles.slice( + rssPage * RSS_PER_PAGE, + (rssPage + 1) * RSS_PER_PAGE + ); + return (
{/* Top Navigation */} @@ -1392,9 +1405,9 @@ const Index = () => {
-
+
{rssArticles.length > 0 ? ( - rssArticles.slice(0, RSS_MAX_ARTICLES).map(article => ( + paginatedRssArticles.map(article => (
{

)}
+ {totalRssPages > 1 && ( +
+ + + {rssPage + 1}/{totalRssPages} + + +
+ )}