@@ -4,9 +4,9 @@ import { IoFunnelOutline } from 'react-icons/io5';
44import 'react-quill-new/dist/quill.snow.css' ;
55import S3Image from '../../components/S3Image' ;
66import Pagination from '../../components/Pagination' ;
7- import { API_BASE_URL } from '../../config/api' ;
87import { useAnnouncements } from '../../hooks/queries/useAnnouncements' ;
98import { useTags } from '../../hooks/queries/useTags' ;
9+ import { usePageContent } from '../../hooks/queries/usePageContent' ;
1010
1111type Announcement = {
1212 id : string ;
@@ -44,14 +44,13 @@ const AnnouncementsPage = ({ previewContent }: AnnouncementsPageProps = {}) => {
4444 const { data : announcementsData , isLoading : announcementsLoading , error : announcementsError } = useAnnouncements ( currentPage , itemsPerPage ) ;
4545 const { data : tags = [ ] } = useTags ( ) ;
4646 const tagsArray = tags as Tag [ ] ;
47+ const { data : pageContentData , isLoading : pageContentLoading } = usePageContent ( 'announcements' ) ;
4748
4849 const [ timeFilter , setTimeFilter ] = useState < '24h' | 'week' | 'month' | 'year' | null > ( null ) ;
4950 const [ selectedTags , setSelectedTags ] = useState < Tag [ ] > ( [ ] ) ;
5051 const [ isFilterOpen , setIsFilterOpen ] = useState ( false ) ;
5152 const [ searchQuery , setSearchQuery ] = useState ( '' ) ;
5253 const filterRef = useRef < HTMLDivElement > ( null ) ;
53- const [ content , setContent ] = useState < PageContent > ( { } ) ;
54- const [ pageLoading , setPageLoading ] = useState ( true ) ;
5554
5655 const navigate = useNavigate ( ) ;
5756
@@ -65,26 +64,8 @@ const AnnouncementsPage = ({ previewContent }: AnnouncementsPageProps = {}) => {
6564 const loading = announcementsLoading ;
6665 const error = announcementsError ? 'An unexpected error occurred' : null ;
6766
68- useEffect ( ( ) => {
69- if ( previewContent ) {
70- setContent ( previewContent ) ;
71- setPageLoading ( false ) ;
72- } else {
73- const loadContent = async ( ) => {
74- try {
75- const response = await fetch ( `${ API_BASE_URL } /api/page-content/announcements` ) ;
76- if ( ! response . ok ) throw new Error ( 'Failed to fetch page content' ) ;
77- const data = await response . json ( ) ;
78- setContent ( data ) ;
79- } catch ( error ) {
80- console . error ( 'Error loading page content:' , error ) ;
81- } finally {
82- setPageLoading ( false ) ;
83- }
84- } ;
85- loadContent ( ) ;
86- }
87- } , [ previewContent ] ) ;
67+ const content = previewContent || pageContentData || { } ;
68+ const pageLoading = ! previewContent && pageContentLoading ;
8869
8970
9071 useEffect ( ( ) => {
0 commit comments