11'use client'
22
3- import { useCallback , useContext , useEffect , useRef , useState } from 'react'
3+ import { useCallback , useContext , useRef , useState } from 'react'
44import { FetchLoading } from 'fetch-loading'
55import { Badge } from '@/components/ui/badge'
66import { Button } from '@/components/ui/button'
@@ -20,11 +20,12 @@ import {
2020 CarouselPrevious ,
2121} from '@/components/ui/carousel'
2222import { Skeleton } from '@/components/ui/skeleton'
23- import fetchFeedItems from '@/api/fetchFeedItems'
2423import { ContextContentLoaded } from '@/context/ContextContentLoaded'
2524import { ContextTopTenPosts } from '@/context/ContextTopTenPosts'
2625import { FeedItemsType } from '@/types/types'
27- import { getItemFromSessionStorage } from '@/utils/getItemFromSessionStorage'
26+ import { fetchFeedItems } from '@/api/fetchFeedItems'
27+ import { useLoadFeedItems } from '@/hooks/useLoadFeedItems'
28+ import { useLoadMoreFeedItems } from '@/hooks/useLoadMoreFeedItems'
2829
2930const Feed = ( ) => {
3031 const contextContentLoaded = useContext ( ContextContentLoaded )
@@ -58,31 +59,8 @@ const Feed = () => {
5859 setIsLoading ( false )
5960 } , [ isLoading , setContentLoaded ] )
6061
61- useEffect ( ( ) => {
62- const parsedStorageData = getItemFromSessionStorage ( )
63- setFeedItems ( parsedStorageData ?. feedItems || [ ] )
64- nextPage . current = parsedStorageData ?. nextPage || 1
65-
66- if ( ! parsedStorageData ?. feedItems ?. length ) {
67- loadMoreItems ( )
68- } else {
69- setContentLoaded ( ( prev ) => ( { ...prev , posts : true } ) )
70- }
71- } , [ loadMoreItems , setContentLoaded ] )
72-
73- useEffect ( ( ) => {
74- const handleScroll = ( ) => {
75- if (
76- window . innerHeight + window . scrollY >=
77- document . body . offsetHeight - 96
78- ) {
79- loadMoreItems ( )
80- }
81- }
82-
83- window . addEventListener ( 'scroll' , handleScroll )
84- return ( ) => window . removeEventListener ( 'scroll' , handleScroll )
85- } , [ isLoading , loadMoreItems ] )
62+ useLoadFeedItems ( loadMoreItems , nextPage , setContentLoaded , setFeedItems )
63+ useLoadMoreFeedItems ( isLoading , loadMoreItems )
8664
8765 return (
8866 < main
0 commit comments