'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { Card, CardHeader, CardTitle, CardDescription, CardContent, Button, Input, } from '@/components/ui'; import { createWeatherSession } from '@/actions/weather'; import { getWeekYearLabel } from '@/lib/date-utils'; export default function NewWeatherPage() { const router = useRouter(); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [selectedDate, setSelectedDate] = useState(new Date().toISOString().split('T')[0]); const [title, setTitle] = useState(() => getWeekYearLabel(new Date(new Date().toISOString().split('T')[0]))); const [isTitleManuallyEdited, setIsTitleManuallyEdited] = useState(false); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setError(null); setLoading(true); const date = selectedDate ? new Date(selectedDate) : undefined; if (!title) { setError('Veuillez remplir le titre'); setLoading(false); return; } const result = await createWeatherSession({ title, date }); if (!result.success) { setError(result.error || 'Une erreur est survenue'); setLoading(false); return; } router.push(`/weather/${result.data?.id}`); } function handleDateChange(e: React.ChangeEvent) { const newDate = e.target.value; setSelectedDate(newDate); // Only update title if user hasn't manually modified it if (!isTitleManuallyEdited) { setTitle(getWeekYearLabel(new Date(newDate))); } } function handleTitleChange(e: React.ChangeEvent) { setTitle(e.target.value); setIsTitleManuallyEdited(true); } return (
🌤️ Nouvelle Météo Créez une météo personnelle pour faire le point sur 4 axes clés et partagez-la avec votre équipe
{error && (
{error}
)}

Comment ça marche ?

  1. Performance : Comment évaluez-vous votre performance personnelle ?
  2. Moral : Quel est votre moral actuel ?
  3. Flux : Comment se passe votre flux de travail personnel ?
  4. Création de valeur : Comment évaluez-vous votre création de valeur ?

💡 Astuce : Partagez votre météo avec votre équipe pour qu'ils puissent voir votre état. Chaque membre peut créer sa propre météo et la partager !

); }