106 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| "use client";
 | |
| 
 | |
| import IconTrashLines from '@/components/icon/icon-trash-lines';
 | |
| import PanelCodeHighlight from '@/components/panel-code-highlight';
 | |
| import ComponentsTablesSimple from '@/components/tables/components-tables-simple'
 | |
| import { formatUnixTimestamp } from '@/utils/helpers';
 | |
| import Tippy from '@tippyjs/react';
 | |
| import axios from 'axios';
 | |
| import React, { useEffect, useState } from "react"
 | |
| 
 | |
| type Props = {}
 | |
| 
 | |
| const SungrowPlant = (props: Props) => {
 | |
|     const [sites, setSites] = useState<any[]>([])
 | |
|     const [loading, setLoading] = useState(true)
 | |
| 
 | |
| 
 | |
|     useEffect(() => {
 | |
|         const fetchSites = async () => {
 | |
|             try {
 | |
|                 const res = await fetch("/api/sungrow/site")
 | |
|                 const data = await res.json()
 | |
|                 console.log("data", data)
 | |
|                 setSites(data)
 | |
|             } catch (error) {
 | |
|                 console.error("Error fetching inverters:", error)
 | |
|             } finally {
 | |
|                 setLoading(false)
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         fetchSites()
 | |
|     }, [])
 | |
| 
 | |
|     const statusLabels: Record<number, string> = {
 | |
|         0: "Offline",
 | |
|         1: "Normal",
 | |
|     }
 | |
|     const plantTypeLabel: Record<number, string> = {
 | |
|         3: "Commercial PV",
 | |
|         4: "Residential PV",
 | |
|     }
 | |
| 
 | |
| 
 | |
|     return (
 | |
|         <div>
 | |
|             {loading ? <p>Loading...</p> : (
 | |
|                 <PanelCodeHighlight title="Sungrow Sites">
 | |
|                     <div className="table-responsive mb-5">
 | |
|                         <table>
 | |
|                             <thead>
 | |
|                                 <tr>
 | |
|                                     <th>Site Name</th>
 | |
|                                     <th>Status</th>
 | |
|                                     <th>Plant Type</th>
 | |
|                                     {/* <th>Installed Power</th>
 | |
|                                     <th>Real-time Power</th>
 | |
|                                     <th>Yield Today</th>
 | |
|                                     <th>Monthly Yield</th>
 | |
|                                     <th>Annual Yield</th>
 | |
|                                     <th>Total Yield</th>
 | |
|                                     <th>Equivalent Hours</th>
 | |
|                                     <th>Remarks</th> */}
 | |
|                                     <th className="text-center">Action</th>
 | |
|                                 </tr>
 | |
|                             </thead>
 | |
|                             <tbody>
 | |
|                                 {sites.map((data) => (
 | |
|                                     <tr key={data.id}>
 | |
|                                         <td>
 | |
|                                             <div className="whitespace-nowrap">{data.ps_name}</div>
 | |
|                                         </td>
 | |
|                                         <td>
 | |
|                                             <div className={`whitespace-nowrap ${ data.online_status !== 1 ? "text-danger" : "text-success" }`} >
 | |
|                                                 {statusLabels[data.online_status] || "-"}
 | |
|                                             </div>
 | |
|                                         </td>
 | |
|                                         <td>{plantTypeLabel[data.ps_type] || "-"}</td>
 | |
|                                         {/* <td></td>
 | |
|                                         <td></td>
 | |
|                                         <td></td>
 | |
|                                         <td></td>
 | |
|                                         <td></td>
 | |
|                                         <td></td>
 | |
|                                         <td></td>
 | |
|                                         <td></td> */}
 | |
|                                         <td className="text-center">
 | |
|                                             <Tippy content="Delete">
 | |
|                                                 <button type="button">
 | |
|                                                     <IconTrashLines className="m-auto" />
 | |
|                                                 </button>
 | |
|                                             </Tippy>
 | |
|                                         </td>
 | |
|                                     </tr>
 | |
|                                 ))}
 | |
|                             </tbody>
 | |
|                         </table>
 | |
|                     </div>
 | |
|                     </PanelCodeHighlight>
 | |
|             )}
 | |
|         </div>
 | |
|     )
 | |
| }
 | |
| 
 | |
| export default SungrowPlant
 | 
