Version 1.0.0
This commit is contained in:
64
resources/js/pages/home.tsx
Normal file
64
resources/js/pages/home.tsx
Normal file
@@ -0,0 +1,64 @@
|
||||
import { Head } from '@inertiajs/react';
|
||||
import { useEffect, useState } from 'react';
|
||||
import AppLayout from '@/layouts/app-layout';
|
||||
import HomeCarousel from '@/components/home-carousel/home-carousel';
|
||||
|
||||
interface HomepageData {
|
||||
title?: string;
|
||||
content?: string;
|
||||
photo?: string;
|
||||
}
|
||||
|
||||
export default function Home() {
|
||||
const [homepageData, setHomepageData] = useState<HomepageData | null>(null);
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
setLoading(true);
|
||||
fetch('/api/homepage')
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
setHomepageData(data);
|
||||
setLoading(false);
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error fetching homepage data:', error);
|
||||
setLoading(false);
|
||||
});
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<AppLayout>
|
||||
<Head title="Strona główna" />
|
||||
<HomeCarousel />
|
||||
<div>
|
||||
<main className="bg-background max-w-screen-xl mx-auto px-4 xl:px-0 pb-12">
|
||||
{loading ? (
|
||||
<div className="flex justify-center items-center h-64">
|
||||
<div className="text-lg">Wczytywanie...</div>
|
||||
</div>
|
||||
) : (
|
||||
<article>
|
||||
<div className="flex flex-col md:flex-row gap-8">
|
||||
<div className="md:w-1/2">
|
||||
<h1 className="text-3xl font-bold text-black dark:text-white contrast:text-foreground mb-6">{homepageData?.title}</h1>
|
||||
<div className="text-lg content" dangerouslySetInnerHTML={{ __html: homepageData?.content || '' }}></div>
|
||||
</div>
|
||||
|
||||
{homepageData?.photo && (
|
||||
<div className="md:w-1/2 md:sticky md:top-8">
|
||||
<img
|
||||
className="w-full rounded-lg shadow-md"
|
||||
src={homepageData.photo}
|
||||
alt="Zdjęcie przedstawiające szpital"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</article>
|
||||
)}
|
||||
</main>
|
||||
</div>
|
||||
</AppLayout>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user