fix: refine loading states in MetricsTab
- Simplified loading logic by removing unnecessary trends loading check. - Enhanced UI feedback by disabling the weeks selection during trends loading and added a loading state for the trends chart. - Improved user experience by displaying a message when no velocity data is available.
This commit is contained in:
@@ -93,7 +93,7 @@ export function MetricsTab({ className }: MetricsTabProps) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{metricsLoading || trendsLoading ? (
|
{metricsLoading ? (
|
||||||
<Card>
|
<Card>
|
||||||
<CardContent className="p-6 text-center">
|
<CardContent className="p-6 text-center">
|
||||||
<div className="animate-pulse">
|
<div className="animate-pulse">
|
||||||
@@ -207,27 +207,39 @@ export function MetricsTab({ className }: MetricsTabProps) {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Tendances de vélocité */}
|
{/* Tendances de vélocité */}
|
||||||
{trends.length > 0 && (
|
<Card>
|
||||||
<Card>
|
<CardHeader>
|
||||||
<CardHeader>
|
<div className="flex items-center justify-between">
|
||||||
<div className="flex items-center justify-between">
|
<h3 className="text-lg font-semibold">🚀 Tendances de vélocité</h3>
|
||||||
<h3 className="text-lg font-semibold">🚀 Tendances de vélocité</h3>
|
<select
|
||||||
<select
|
value={weeksBack}
|
||||||
value={weeksBack}
|
onChange={(e) => setWeeksBack(parseInt(e.target.value))}
|
||||||
onChange={(e) => setWeeksBack(parseInt(e.target.value))}
|
className="text-sm border border-[var(--border)] rounded px-2 py-1 bg-[var(--background)]"
|
||||||
className="text-sm border border-[var(--border)] rounded px-2 py-1 bg-[var(--background)]"
|
disabled={trendsLoading}
|
||||||
>
|
>
|
||||||
<option value={4}>4 semaines</option>
|
<option value={4}>4 semaines</option>
|
||||||
<option value={8}>8 semaines</option>
|
<option value={8}>8 semaines</option>
|
||||||
<option value={12}>12 semaines</option>
|
<option value={12}>12 semaines</option>
|
||||||
</select>
|
</select>
|
||||||
|
</div>
|
||||||
|
</CardHeader>
|
||||||
|
<CardContent>
|
||||||
|
{trendsLoading ? (
|
||||||
|
<div className="h-[300px] flex items-center justify-center">
|
||||||
|
<div className="animate-pulse text-center">
|
||||||
|
<div className="h-4 bg-[var(--border)] rounded w-32 mx-auto mb-2"></div>
|
||||||
|
<div className="h-48 bg-[var(--border)] rounded"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</CardHeader>
|
) : trends.length > 0 ? (
|
||||||
<CardContent>
|
|
||||||
<VelocityTrendChart data={trends} />
|
<VelocityTrendChart data={trends} />
|
||||||
</CardContent>
|
) : (
|
||||||
</Card>
|
<div className="h-[300px] flex items-center justify-center text-[var(--muted-foreground)]">
|
||||||
)}
|
Aucune donnée de vélocité disponible
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
|
||||||
{/* Analyses de productivité */}
|
{/* Analyses de productivité */}
|
||||||
<Card>
|
<Card>
|
||||||
|
|||||||
Reference in New Issue
Block a user