feat: jira and synchro

This commit is contained in:
Julien Froidefond
2025-09-17 13:56:42 +02:00
parent 2f104109db
commit 625e8dba4b
24 changed files with 1821 additions and 140 deletions

View File

@@ -4,13 +4,13 @@ import { useTheme } from '@/contexts/ThemeContext';
import Link from 'next/link';
interface HeaderProps {
title: string;
subtitle: string;
stats: TaskStats;
title?: string;
subtitle?: string;
stats?: TaskStats;
syncing?: boolean;
}
export function Header({ title, subtitle, stats, syncing = false }: HeaderProps) {
export function Header({ title = "TowerControl", subtitle = "Task Management", stats, syncing = false }: HeaderProps) {
const { theme, toggleTheme } = useTheme();
return (
@@ -55,6 +55,12 @@ export function Header({ title, subtitle, stats, syncing = false }: HeaderProps)
>
Tags
</Link>
<Link
href="/settings"
className="text-[var(--muted-foreground)] hover:text-[var(--primary)] transition-colors font-mono text-sm uppercase tracking-wider"
>
Settings
</Link>
{/* Theme Toggle */}
<button
@@ -75,29 +81,31 @@ export function Header({ title, subtitle, stats, syncing = false }: HeaderProps)
</nav>
</div>
{/* Stats essentielles */}
<div className="flex flex-wrap gap-3">
<StatCard
label="TOTAL"
value={String(stats.total).padStart(2, '0')}
color="blue"
/>
<StatCard
label="DONE"
value={String(stats.completed).padStart(2, '0')}
color="green"
/>
<StatCard
label="ACTIVE"
value={String(stats.inProgress).padStart(2, '0')}
color="yellow"
/>
<StatCard
label="RATE"
value={`${stats.completionRate}%`}
color="purple"
/>
</div>
{/* Stats essentielles - seulement si stats disponibles */}
{stats && (
<div className="flex flex-wrap gap-3">
<StatCard
label="TOTAL"
value={String(stats.total).padStart(2, '0')}
color="blue"
/>
<StatCard
label="DONE"
value={String(stats.completed).padStart(2, '0')}
color="green"
/>
<StatCard
label="ACTIVE"
value={String(stats.inProgress).padStart(2, '0')}
color="yellow"
/>
<StatCard
label="RATE"
value={`${stats.completionRate}%`}
color="purple"
/>
</div>
)}
</div>
</div>
</header>