import React, { useState, useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { soilHealthAnalyzer } from '../utils/soilHealthAnalyzer';
import { climateImpactAssessment } from '../utils/climateImpactAssessment';
import { realTimeEnvironmentalAPI } from '../utils/realTimeEnvironmentalAPI';
function SmartFarming() {
const { t } = useTranslation();
const [selectedCrop, setSelectedCrop] = useState('');
const [farmSize, setFarmSize] = useState('');
const [currentPractices, setCurrentPractices] = useState([]);
const [realTimeData, setRealTimeData] = useState(null);
const [location, setLocation] = useState({ lat: 40.7128, lon: -74.0060 }); // Default to NYC
const [isLoadingData, setIsLoadingData] = useState(false);
// Load real-time environmental data
useEffect(() => {
loadRealTimeData();
// Update data every 10 minutes
const interval = setInterval(loadRealTimeData, 10 * 60 * 1000);
return () => clearInterval(interval);
}, [location]);
const loadRealTimeData = async () => {
setIsLoadingData(true);
try {
const data = await realTimeEnvironmentalAPI.getComprehensiveData(location.lat, location.lon);
setRealTimeData(data);
} catch (error) {
console.error('Failed to load real-time data:', error);
} finally {
setIsLoadingData(false);
}
};
// Removed: Get user's location useEffect hook
const farmingTechniques = t('smartFarming.farmingTechniques', { returnObjects: true });
const cropRecommendations = t('smartFarming.cropRecommendations', { returnObjects: true });
const farmingApps = t('smartFarming.farmingApps', { returnObjects: true });
const sustainabilityPractices = t('smartFarming.sustainabilityPractices', { returnObjects: true });
const getDifficultyColor = (difficulty) => {
switch (difficulty) {
case t('smartFarming.difficulties.beginner'): return '#4CAF50';
case t('smartFarming.difficulties.intermediate'): return '#FF9800';
case t('smartFarming.difficulties.advanced'): return '#f44336';
default: return '#666';
}
};
const getCostColor = (cost) => {
switch (cost) {
case t('smartFarming.costs.low'): return '#4CAF50';
case t('smartFarming.costs.medium'): return '#FF9800';
case t('smartFarming.costs.high'): return '#f44336';
default: return '#666';
}
};
return (
{/* Header */}
{t('smartFarming.title')}
{t('smartFarming.subtitle')}
{t('smartFarming.headerBanner')}
{/* Real-Time Environmental Data */}
{realTimeData && (
{t('smartFarming.realTime.title')}
{/* Weather Data */}
{t('smartFarming.realTime.weather.title')}
{t('smartFarming.realTime.weather.temperature')}: {realTimeData.weather.temperature}°C
{t('smartFarming.realTime.weather.humidity')}: {realTimeData.weather.humidity}%
{t('smartFarming.realTime.weather.wind')}: {realTimeData.weather.windSpeed} m/s
{t('smartFarming.realTime.weather.uvIndex')}: {realTimeData.weather.uvIndex}
{t('smartFarming.realTime.source')}: {realTimeData.weather.source}
{/* Air Quality */}
{t('smartFarming.realTime.airQuality.title')}
{t('smartFarming.realTime.airQuality.aqi')}: {realTimeData.airQuality.aqi}
{t('smartFarming.realTime.airQuality.pm25')}: {realTimeData.airQuality.pm25} μg/m³
{t('smartFarming.realTime.airQuality.pm10')}: {realTimeData.airQuality.pm10} μg/m³
{t('smartFarming.realTime.airQuality.o3')}: {realTimeData.airQuality.o3} μg/m³
{t('smartFarming.realTime.source')}: {realTimeData.airQuality.source}
{/* Agricultural Conditions */}
{t('smartFarming.realTime.cropConditions.title')}
{t('smartFarming.realTime.cropConditions.soilMoisture')}: {realTimeData.agricultural.soilMoisture}%
{t('smartFarming.realTime.cropConditions.soilTemp')}: {realTimeData.agricultural.soilTemperature}°C
{t('smartFarming.realTime.cropConditions.ndvi')}: {realTimeData.agricultural.ndvi.toFixed(2)}
{t('smartFarming.realTime.cropConditions.cropStage')}: {realTimeData.agricultural.cropStage}
{t('smartFarming.realTime.cropConditions.gdd')}: {realTimeData.agricultural.growingDegreeDays}
{/* Data Quality Indicator */}
{t('smartFarming.realTime.dataQuality.title')}
{t('smartFarming.realTime.dataQuality.qualityScore')}: {realTimeData.dataQuality.score}%
{t('smartFarming.realTime.dataQuality.level')}: {realTimeData.dataQuality.level}
{t('smartFarming.realTime.dataQuality.lastUpdated')}: {new Date(realTimeData.timestamp).toLocaleTimeString()}
{isLoadingData && (
{t('smartFarming.realTime.dataQuality.updating')}
)}
)}
{/* Farm Assessment */}
{t('smartFarming.assessment.title')}
{selectedCrop && cropRecommendations[selectedCrop] && (
{t('smartFarming.assessment.recommendationsTitle', { crop: t(`smartFarming.crops.${selectedCrop.toLowerCase()}`) })}
{t('smartFarming.assessment.recommendedTechniques')}:
{cropRecommendations[selectedCrop].techniques.map((technique, index) => (
- {technique}
))}
{t('smartFarming.assessment.seasonalTips')}:
{cropRecommendations[selectedCrop].seasonalTips.map((tip, index) => (
- {tip}
))}
{t('smartFarming.assessment.sustainabilityFocus')}: {cropRecommendations[selectedCrop].sustainability}
{/* Accuracy Disclaimer */}
{t('smartFarming.assessment.accuracy.title')}
{t('smartFarming.assessment.accuracy.description')}
- {t('smartFarming.assessment.accuracy.factors.climate')}
- {t('smartFarming.assessment.accuracy.factors.farmSize')}
- {t('smartFarming.assessment.accuracy.factors.regulations')}
- {t('smartFarming.assessment.accuracy.factors.cropVarieties')}
{t('smartFarming.assessment.accuracy.consult')}
)}
{/* Farming Techniques */}
{t('smartFarming.techniques.title')}
{farmingTechniques.map(technique => (
{technique.icon}
{technique.name}
{technique.category}
{technique.description}
{t('smartFarming.techniques.benefits')}:
{technique.benefits.map((benefit, index) => (
- {benefit}
))}
{t('smartFarming.techniques.implementation')}:
{technique.implementation.map((step, index) => (
- {step}
))}
{t('smartFarming.techniques.cost')}: {technique.cost}
{technique.difficulty}
{t('smartFarming.techniques.roi')}: {technique.roi}
))}
{/* Farming Apps */}
{t('smartFarming.apps.title')}
{farmingApps.map((app, index) => (
{app.name}
{app.category}
{app.description}
{t('smartFarming.apps.features')}:
{app.features.map((feature, idx) => (
- {feature}
))}
{t('smartFarming.apps.rating')}:
{'⭐'.repeat(Math.floor(app.rating))} {app.rating}
{t('smartFarming.apps.getApp')}
))}
{/* Sustainability Practices */}
{t('smartFarming.sustainability.title')}
{sustainabilityPractices.map((item, index) => (
{item.practice}
{item.description}
{t('smartFarming.sustainability.environmentalImpact')}:
{item.impact}
{t('smartFarming.sustainability.financialIncentives')}:
{item.incentives}
))}
{/* Success Stories */}
{t('smartFarming.successStories.title')}
40%
{t('smartFarming.successStories.yieldIncrease')}
{t('smartFarming.successStories.yieldIncreaseStory')}
60%
{t('smartFarming.successStories.waterSavings')}
{t('smartFarming.successStories.waterSavingsStory')}
$50K
{t('smartFarming.successStories.annualSavings')}
{t('smartFarming.successStories.annualSavingsStory')}
);
}
export default SmartFarming;