'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { Card, CardHeader, CardTitle, CardDescription, CardContent, Button, Input, } from '@/components/ui'; import { createWeeklyCheckInSession } from '@/actions/weekly-checkin'; import { getWeekYearLabel } from '@/lib/date-utils'; export default function NewWeeklyCheckInPage() { 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 formData = new FormData(e.currentTarget); const participant = formData.get('participant') as string; const date = selectedDate ? new Date(selectedDate) : undefined; if (!title || !participant) { setError('Veuillez remplir tous les champs'); setLoading(false); return; } const result = await createWeeklyCheckInSession({ title, participant, date }); if (!result.success) { setError(result.error || 'Une erreur est survenue'); setLoading(false); return; } router.push(`/weekly-checkin/${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 (
📝 Nouveau Check-in Hebdomadaire Créez un check-in hebdomadaire pour faire le point sur la semaine avec votre collaborateur
{error && (
{error}
)}

Comment ça marche ?

  1. Ce qui s'est bien passé : Notez les réussites et points positifs de la semaine
  2. Ce qui s'est mal passé : Identifiez les difficultés et points d'amélioration
  3. Enjeux du moment : Décrivez sur quoi vous vous concentrez actuellement
  4. Prochains enjeux : Définissez ce sur quoi vous allez vous concentrer prochainement

💡 Astuce : Ajoutez une émotion à chaque item pour mieux exprimer votre ressenti (fierté, joie, frustration, etc.)

); }