mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-19 13:08:23 +02:00
Improve weather condition translations and icon displays
Update WeatherWidget component to support more French weather conditions and improve icon rendering by fixing dynamic sizing issues and adding new icons for partially cloudy and sunny conditions. Replit-Commit-Author: Agent Replit-Commit-Session-Id: d43bd811-9372-45a7-8ac9-4a954c0538e1 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/d43bd811-9372-45a7-8ac9-4a954c0538e1/xwPSzXM
This commit is contained in:
1 parent
369638f3d6
commit
f77930bc31
3 files changed
+33
-18
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@@ -1,5 +1,5 @@
|
|||||||
import { useQuery } from "@tanstack/react-query";
|
import { useQuery } from "@tanstack/react-query";
|
||||||
import { Cloud, CloudRain, Sun, CloudSnow, ThermometerSun, CloudDrizzle, Wind, Zap, Eye } from "lucide-react";
|
import { Cloud, CloudRain, Sun, CloudSnow, CloudSun, ThermometerSun, CloudDrizzle, Wind, Zap, Eye } from "lucide-react";
|
||||||
import { Card, CardContent } from "@/components/ui/card";
|
import { Card, CardContent } from "@/components/ui/card";
|
||||||
|
|
||||||
interface WeatherData {
|
interface WeatherData {
|
||||||
@@ -24,17 +24,37 @@ interface WeatherResponse {
|
|||||||
|
|
||||||
|
|
||||||
const WeatherIcon = ({ condition, size = 20 }: { condition: string; size?: number }) => {
|
const WeatherIcon = ({ condition, size = 20 }: { condition: string; size?: number }) => {
|
||||||
const iconClass = `h-${Math.floor(size/4)} w-${Math.floor(size/4)}`;
|
// Utiliser des tailles fixes plutôt que dynamiques pour éviter les problèmes de Tailwind
|
||||||
|
const getIconClass = (size: number) => {
|
||||||
|
if (size <= 16) return "h-4 w-4";
|
||||||
|
if (size <= 20) return "h-5 w-5";
|
||||||
|
if (size <= 24) return "h-6 w-6";
|
||||||
|
return "h-8 w-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
const iconClass = getIconClass(size);
|
||||||
const conditionLower = condition.toLowerCase();
|
const conditionLower = condition.toLowerCase();
|
||||||
|
|
||||||
|
// Ensoleillé/Dégagé
|
||||||
|
if (conditionLower.includes('clear') || conditionLower.includes('dégagé') ||
|
||||||
|
conditionLower.includes('sunny') || conditionLower.includes('ensoleillé') ||
|
||||||
|
conditionLower.includes('fair') || conditionLower.includes('beau')) {
|
||||||
|
return <Sun className={`${iconClass} text-yellow-500`} />;
|
||||||
|
}
|
||||||
|
|
||||||
// Conditions pluvieuses
|
// Conditions pluvieuses
|
||||||
if (conditionLower.includes('rain') || conditionLower.includes('pluie') || conditionLower.includes('shower')) {
|
if (conditionLower.includes('rain') || conditionLower.includes('pluie') || conditionLower.includes('shower') || conditionLower.includes('averses')) {
|
||||||
if (conditionLower.includes('heavy') || conditionLower.includes('forte')) {
|
if (conditionLower.includes('heavy') || conditionLower.includes('forte')) {
|
||||||
return <CloudRain className={`${iconClass} text-blue-600`} />;
|
return <CloudRain className={`${iconClass} text-blue-600`} />;
|
||||||
}
|
}
|
||||||
return <CloudDrizzle className={`${iconClass} text-blue-500`} />;
|
return <CloudDrizzle className={`${iconClass} text-blue-500`} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Bruine
|
||||||
|
if (conditionLower.includes('drizzle') || conditionLower.includes('bruine')) {
|
||||||
|
return <CloudDrizzle className={`${iconClass} text-blue-400`} />;
|
||||||
|
}
|
||||||
|
|
||||||
// Conditions neigeuses
|
// Conditions neigeuses
|
||||||
if (conditionLower.includes('snow') || conditionLower.includes('neige') || conditionLower.includes('blizzard')) {
|
if (conditionLower.includes('snow') || conditionLower.includes('neige') || conditionLower.includes('blizzard')) {
|
||||||
return <CloudSnow className={`${iconClass} text-blue-300`} />;
|
return <CloudSnow className={`${iconClass} text-blue-300`} />;
|
||||||
@@ -42,34 +62,29 @@ const WeatherIcon = ({ condition, size = 20 }: { condition: string; size?: numbe
|
|||||||
|
|
||||||
// Orages
|
// Orages
|
||||||
if (conditionLower.includes('thunder') || conditionLower.includes('storm') || conditionLower.includes('orage')) {
|
if (conditionLower.includes('thunder') || conditionLower.includes('storm') || conditionLower.includes('orage')) {
|
||||||
return <Zap className={`${iconClass} text-yellow-500`} />;
|
return <Zap className={`${iconClass} text-purple-600`} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Brouillard
|
// Brouillard
|
||||||
if (conditionLower.includes('fog') || conditionLower.includes('mist') || conditionLower.includes('brouillard')) {
|
if (conditionLower.includes('fog') || conditionLower.includes('mist') || conditionLower.includes('brouillard') || conditionLower.includes('brume')) {
|
||||||
return <Eye className={`${iconClass} text-gray-400`} />;
|
return <Cloud className={`${iconClass} text-gray-400`} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vent
|
// Vent
|
||||||
if (conditionLower.includes('wind') || conditionLower.includes('vent')) {
|
if (conditionLower.includes('wind') || conditionLower.includes('vent') || conditionLower.includes('venteux')) {
|
||||||
return <Wind className={`${iconClass} text-gray-600`} />;
|
return <Wind className={`${iconClass} text-gray-600`} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Nuageux
|
// Nuageux
|
||||||
if (conditionLower.includes('cloud') || conditionLower.includes('nuage') || conditionLower.includes('overcast')) {
|
if (conditionLower.includes('cloud') || conditionLower.includes('nuage') || conditionLower.includes('overcast') || conditionLower.includes('couvert')) {
|
||||||
if (conditionLower.includes('partly') || conditionLower.includes('partial')) {
|
if (conditionLower.includes('partly') || conditionLower.includes('partial') || conditionLower.includes('partiellement')) {
|
||||||
return <Cloud className={`${iconClass} text-gray-500`} />;
|
return <CloudSun className={`${iconClass} text-yellow-400`} />;
|
||||||
}
|
}
|
||||||
return <Cloud className={`${iconClass} text-gray-600`} />;
|
return <Cloud className={`${iconClass} text-gray-600`} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensoleillé
|
// Par défaut pour températures
|
||||||
if (conditionLower.includes('sun') || conditionLower.includes('soleil') || conditionLower.includes('clear') || conditionLower.includes('fair')) {
|
return <Sun className={`${iconClass} text-yellow-500`} />;
|
||||||
return <Sun className={`${iconClass} text-yellow-500`} />;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Par défaut
|
|
||||||
return <ThermometerSun className={`${iconClass} text-orange-500`} />;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function WeatherWidget() {
|
export default function WeatherWidget() {
|
||||||
|
|||||||
+1
-1
@@ -2,4 +2,4 @@
|
|||||||
# https://curl.se/docs/http-cookies.html
|
# https://curl.se/docs/http-cookies.html
|
||||||
# This file was generated by libcurl! Edit at your own risk.
|
# This file was generated by libcurl! Edit at your own risk.
|
||||||
|
|
||||||
#HttpOnly_localhost FALSE / FALSE 1755333988 connect.sid s%3AISLqM3nMPwDqTr6rJYeqzJe6pp6ETpGJ.UEpHxk3T4DOjAZ6VGJsJ%2FHoasP2kzqayut1IaOzPG9E
|
#HttpOnly_localhost FALSE / FALSE 1755334812 connect.sid s%3AIUsQcAbYjJ2Yu9GRwhXwQt22rGvvMGRo.zTBgX64O5zq1nh16Yc0umuKKQnBAy0xAn4BkA5iErOQ
|
||||||
Reference in new issue
Block a user