Skip to content
Snippets Groups Projects
Commit 0b9d57da authored by Razzan Yoni's avatar Razzan Yoni
Browse files

add loading for waiting data

parent 3583f1ba
1 merge request!1Dev
...@@ -15,6 +15,7 @@ interface PremiumAlbum { ...@@ -15,6 +15,7 @@ interface PremiumAlbum {
const AlbumPage: React.FC = () => { const AlbumPage: React.FC = () => {
const [dataAlbums, setDataAlbums] = useState<PremiumAlbum[]>([]); const [dataAlbums, setDataAlbums] = useState<PremiumAlbum[]>([]);
const [loading, setLoading] = useState(true);
const navigate = useNavigate(); const navigate = useNavigate();
useEffect(() => { useEffect(() => {
...@@ -24,8 +25,10 @@ const AlbumPage: React.FC = () => { ...@@ -24,8 +25,10 @@ const AlbumPage: React.FC = () => {
console.log(response); console.log(response);
setDataAlbums(response.data); setDataAlbums(response.data);
setLoading(false);
} catch (error) { } catch (error) {
console.error('Error fetching data:', error); console.error('Error fetching data:', error);
setLoading(true)
} }
}; };
...@@ -41,9 +44,12 @@ const AlbumPage: React.FC = () => { ...@@ -41,9 +44,12 @@ const AlbumPage: React.FC = () => {
<button className="bg-white hover:bg-gray-300 px-4 py-2 rounded absolute top-10 right-10" onClick={toAddAlbum}> <button className="bg-white hover:bg-gray-300 px-4 py-2 rounded absolute top-10 right-10" onClick={toAddAlbum}>
Add Album Add Album
</button> </button>
{dataAlbums.map((album) => ( {
loading ? <div className="text-white">Loading . . .</div> :
dataAlbums.map((album) => (
<AlbumCard key={album.albumId} {...album} /> <AlbumCard key={album.albumId} {...album} />
))} ))
}
</div> </div>
); );
}; };
......
...@@ -8,17 +8,18 @@ import axios from 'axios'; ...@@ -8,17 +8,18 @@ import axios from 'axios';
interface PremiumSong { interface PremiumSong {
songId: number; songId: number;
albumId: number; albumId: number;
title: String; title: string;
artist: String; artist: string;
songNumber: number; songNumber: number;
discNumber:number; discNumber:number;
duration:number; duration:number;
audioFilename: String; audioFilename: string;
} }
const SongsPage: React.FC = () => { const SongsPage: React.FC = () => {
const { albumId } = useParams<{ albumId: string }>(); const { albumId } = useParams<{ albumId: string }>();
const [songsData, setSongsData] = useState<PremiumSong[]>([]); const [songsData, setSongsData] = useState<PremiumSong[]>([]);
const [loading, setLoading] = useState(true);
useEffect(() => { useEffect(() => {
const fetchData = async () => { const fetchData = async () => {
...@@ -27,8 +28,10 @@ const SongsPage: React.FC = () => { ...@@ -27,8 +28,10 @@ const SongsPage: React.FC = () => {
console.log(response); console.log(response);
setSongsData(response.data); setSongsData(response.data);
setLoading(false);
} catch (error) { } catch (error) {
console.error('Error fetching data:', error); console.error('Error fetching data:', error);
setLoading(true)
} }
}; };
...@@ -80,7 +83,9 @@ const SongsPage: React.FC = () => { ...@@ -80,7 +83,9 @@ const SongsPage: React.FC = () => {
</button> </button>
</div> </div>
<div> <div>
<TableSongs {...songsData} /> {
loading ? <div className="text-white">Loading . . .</div> : <TableSongs {...songsData} />
}
</div> </div>
</div> </div>
); );
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment