plebdevs/src/pages/index.js

43 lines
1.4 KiB
JavaScript
Raw Normal View History

import Head from 'next/head';
2024-07-21 19:56:55 -05:00
import React, { useEffect, useCallback } from 'react';
import CoursesCarousel from '@/components/content/carousels/CoursesCarousel';
import WorkshopsCarousel from '@/components/content/carousels/WorkshopsCarousel';
import HeroBanner from '@/components/banner/HeroBanner';
import ResourcesCarousel from '@/components/content/carousels/ResourcesCarousel';
import { useLocalStorageWithEffect } from '@/hooks/useLocalStorage';
import axios from 'axios';
2023-12-23 14:54:38 -06:00
export default function Home() {
const [contentIds, setContentIds] = useLocalStorageWithEffect('contentIds', []);
2024-07-21 19:56:55 -05:00
const fetchContentIds = useCallback(async () => {
try {
const response = await axios.get('/api/content/all');
const ids = response.data;
setContentIds(ids);
} catch (error) {
console.error('Failed to fetch content IDs:', error);
}
}, []);
2024-07-21 19:56:55 -05:00
useEffect(() => {
fetchContentIds();
2024-07-21 19:56:55 -05:00
}, [fetchContentIds]);
2023-12-23 14:54:38 -06:00
return (
<>
<Head>
<title>Create Next App</title>
<meta name="description" content="Generated by create next app" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="/favicon.ico" />
</Head>
<main>
2024-03-17 19:43:19 -05:00
<HeroBanner />
<CoursesCarousel />
2024-03-13 17:45:55 -05:00
<WorkshopsCarousel />
<ResourcesCarousel />
2023-12-23 14:54:38 -06:00
</main>
</>
);
}