import { ApexOptions } from 'apexcharts'; import React, { useEffect, useState } from 'react'; import ReactApexChart from 'react-apexcharts'; import { fetchIndoorPredictData } from '../../api/WeatherData'; const options: ApexOptions = { legend: { show: false, position: 'top', horizontalAlign: 'left', }, colors: ['#3C50E0', '#80CAEE'], chart: { fontFamily: 'Satoshi, sans-serif', height: 335, type: 'area', dropShadow: { enabled: true, color: '#623CEA14', top: 10, blur: 4, left: 0, opacity: 0.1, }, toolbar: { show: false, }, }, responsive: [ { breakpoint: 1024, options: { chart: { height: 300, }, }, }, { breakpoint: 1366, options: { chart: { height: 350, }, }, }, ], stroke: { width: [2, 2], curve: 'straight', }, // labels: { // show: false, // position: "top", // }, grid: { xaxis: { lines: { show: true, }, }, yaxis: { lines: { show: true, }, }, }, dataLabels: { enabled: false, }, markers: { size: 4, colors: '#fff', strokeColors: ['#3056D3', '#80CAEE'], strokeWidth: 3, strokeOpacity: 0.9, strokeDashArray: 0, fillOpacity: 1, discrete: [], hover: { size: undefined, sizeOffset: 5, }, }, xaxis: { type: 'category', categories: [ 'Current', '3 Hour', '6 Hour', '9 Hour', '12 Hour', '15 Hour', '18 Hour', '21 Hour', '24 Hour', '27 Hour', '30 Hour', '33 Hour', ], axisBorder: { show: false, }, axisTicks: { show: false, }, }, yaxis: { title: { style: { fontSize: '0px', }, }, min: 10, max: 60, }, }; interface ChartOneState { series: { name: string; data: number[]; }[]; } const LineChart: React.FC = () => { const [seriesData, setSeriesData] = useState([]); const [categories, setCategories] = useState([]); useEffect(() => { const fetchData = async () => { const data = await fetchIndoorPredictData(); if (data) { const categories = data.map((item) => item.timestamp); const indoorTempData = data.map((item) => item.indoor_temp); const outdoorTempData = data.map((item) => item.outdoor_temp); setCategories(categories); setSeriesData([ { name: 'Indoor Temperature', data: indoorTempData }, { name: 'Outdoor Temperature', data: outdoorTempData }, ]); } }; fetchData(); }, []); return (

Indoor Temperature

3 Hour Interval

Outdoor Temperature

3 Hour Interval

); }; export default LineChart;