feat: update profile and dashboard components

- Simplified avatar rendering logic in ProfilePage by removing unnecessary eslint-disable comments.
- Added primaryTagId and availableTags props to RecentTasks for better task management.
- Cleaned up imports in TagDistributionChart by removing unused PieLabelRenderProps.
- Removed redundant mobile link class function in HeaderMobile for improved readability.
This commit is contained in:
Julien Froidefond
2025-10-04 11:52:33 +02:00
parent b2a8c961a8
commit 7490c38d55
4 changed files with 4 additions and 11 deletions

View File

@@ -194,10 +194,8 @@ export default function ProfilePage() {
{profile.avatar && ( {profile.avatar && (
<div className="absolute -bottom-2 -right-2 w-8 h-8 bg-[var(--success)] rounded-full border-4 border-[var(--card)] flex items-center justify-center"> <div className="absolute -bottom-2 -right-2 w-8 h-8 bg-[var(--success)] rounded-full border-4 border-[var(--card)] flex items-center justify-center">
{isGravatarUrl(profile.avatar) ? ( {isGravatarUrl(profile.avatar) ? (
/* eslint-disable-next-line jsx-a11y/alt-text */
<ExternalLink className="w-4 h-4 text-white" aria-label="Avatar Gravatar" /> <ExternalLink className="w-4 h-4 text-white" aria-label="Avatar Gravatar" />
) : ( ) : (
/* eslint-disable-next-line jsx-a11y/alt-text */
<Image className="w-4 h-4 text-white" aria-label="Avatar personnalisé" /> <Image className="w-4 h-4 text-white" aria-label="Avatar personnalisé" />
)} )}
</div> </div>

View File

@@ -80,6 +80,8 @@ export function RecentTasks({ tasks, selectedSources = [], hiddenSources = [] }:
key={task.id} key={task.id}
variant="detailed" variant="detailed"
title={task.title} title={task.title}
primaryTagId={task.primaryTagId}
availableTags={availableTags}
description={task.description} description={task.description}
status={task.status} status={task.status}
priority={task.priority as 'low' | 'medium' | 'high'} priority={task.priority as 'low' | 'medium' | 'high'}

View File

@@ -1,7 +1,7 @@
'use client'; 'use client';
import { Card } from '@/components/ui/Card'; import { Card } from '@/components/ui/Card';
import { PieChart, Pie, Cell, ResponsiveContainer, Tooltip, Legend, BarChart, Bar, XAxis, YAxis, CartesianGrid, PieLabelRenderProps } from 'recharts'; import { PieChart, Pie, Cell, ResponsiveContainer, Tooltip, BarChart, Bar, XAxis, YAxis, CartesianGrid, PieLabelRenderProps } from 'recharts';
import { TagDistributionMetrics } from '@/services/analytics/tag-analytics'; import { TagDistributionMetrics } from '@/services/analytics/tag-analytics';
interface TagDistributionChartProps { interface TagDistributionChartProps {

View File

@@ -3,7 +3,6 @@
import { useState } from 'react'; import { useState } from 'react';
import { X, Menu } from 'lucide-react'; import { X, Menu } from 'lucide-react';
import { signOut } from 'next-auth/react'; import { signOut } from 'next-auth/react';
import Link from 'next/link';
import { HeaderControls } from './HeaderControls'; import { HeaderControls } from './HeaderControls';
import { HeaderNavigation } from './HeaderNavigation'; import { HeaderNavigation } from './HeaderNavigation';
import { AuthButton } from '@/components/AuthButton'; import { AuthButton } from '@/components/AuthButton';
@@ -17,13 +16,7 @@ interface HeaderMobileProps {
export function HeaderMobile({ title, subtitle, syncing }: HeaderMobileProps) { export function HeaderMobile({ title, subtitle, syncing }: HeaderMobileProps) {
const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
// Fonction pour obtenir les classes CSS d'un lien (mobile)
const getMobileLinkClasses = (href: string) => {
const baseClasses = "font-mono text-sm uppercase tracking-wider transition-colors px-4 py-3 rounded-md block w-full text-left";
// Simplifier pour éviter la duplication de logique
return `${baseClasses} text-[var(--muted-foreground)] hover:text-[var(--primary)] hover:bg-[var(--card-hover)]`;
};
return ( return (
<> <>