App.js
index.js
1import React, { useState, useEffect } from 'react';
2import './App.css';
3
4// Main App component for NUIOP dashboard
5const App = () => {
6 const [data, setData] = useState([]);
7 const [loading, setLoading] = useState(true);
8
9 const fetchDataFromAPI = async () => {
10 try {
11 const response = await fetch('https://api.nuiop.com/data');
12 const result = await response.json();
13 setData(result);
14 setLoading(false);
15 } catch (error) {
16 console.error('Error fetching data:', error);
17 setLoading(false);
18 }
19 };
20
21 useEffect(() => {
22 fetchDataFromAPI();
23 }, []);
24
25 return (
26 <div className="app-container">
27 <header className="app-header">
28 <h1>NUIOP Dashboard</h1>
29 </header>
30 <main className="main-content">
31 {loading ? (
32 <div className="loading">Loading...</div>
33 ) : (
34 <div className="data-container">
35 {data.map(item => (
36 <div key={item.id} className="data-item">
37 <h3>{item.title}</h3>
38 <p>{item.description}</p>
39 </div>
40 ))}
41 </div>
42 )}
43 </main>
44 </div>
45 );
46};
47
48export default App;
Vibe Coding