'use client'; import { useState } from 'react'; import { Button } from '@/components/ui/Button'; import { Badge } from '@/components/ui/Badge'; import { AppConfig } from '@/lib/config'; interface JiraConfigFormProps { config: AppConfig; } export function JiraConfigForm({ config }: JiraConfigFormProps) { const [formData, setFormData] = useState({ baseUrl: '', email: '', apiToken: '' }); const [isLoading, setIsLoading] = useState(false); const [message, setMessage] = useState<{ type: 'success' | 'error', text: string } | null>(null); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); setMessage(null); try { // Note: Dans un vrai environnement, ces variables seraient configurées côté serveur // Pour cette démo, on affiche juste un message informatif setMessage({ type: 'success', text: 'Configuration sauvegardée. Redémarrez l'application pour appliquer les changements.' }); } catch { setMessage({ type: 'error', text: 'Erreur lors de la sauvegarde de la configuration' }); } finally { setIsLoading(false); } }; const isJiraConfigured = config.integrations.jira.enabled; return (
{/* Statut actuel */}

Statut de l'intégration

{isJiraConfigured ? 'Jira est configuré et prêt à être utilisé' : 'Jira n\'est pas configuré' }

{isJiraConfigured ? '✓ Configuré' : '✗ Non configuré'}
{isJiraConfigured && (

Configuration actuelle

URL de base:{' '} {config.integrations.jira.baseUrl || 'Non définie'}
Email:{' '} {config.integrations.jira.email || 'Non défini'}
Token API:{' '} {config.integrations.jira.apiToken ? '••••••••' : 'Non défini'}
)} {/* Formulaire de configuration */}
setFormData(prev => ({ ...prev, baseUrl: e.target.value }))} placeholder="https://votre-domaine.atlassian.net" className="w-full px-3 py-2 border border-[var(--border)] rounded bg-[var(--background)] text-[var(--foreground)] focus:outline-none focus:ring-2 focus:ring-[var(--primary)] focus:border-transparent" required />

L'URL de votre instance Jira Cloud (ex: https://monentreprise.atlassian.net)

setFormData(prev => ({ ...prev, email: e.target.value }))} placeholder="votre-email@exemple.com" className="w-full px-3 py-2 border border-[var(--border)] rounded bg-[var(--background)] text-[var(--foreground)] focus:outline-none focus:ring-2 focus:ring-[var(--primary)] focus:border-transparent" required />

L'email de votre compte Jira

setFormData(prev => ({ ...prev, apiToken: e.target.value }))} placeholder="Votre token API Jira" className="w-full px-3 py-2 border border-[var(--border)] rounded bg-[var(--background)] text-[var(--foreground)] focus:outline-none focus:ring-2 focus:ring-[var(--primary)] focus:border-transparent" required />

Créez un token API depuis{' '} votre profil Atlassian

{message && (
{message.text}
)} {/* Instructions */}

💡 Instructions de configuration

1. URL de base: Votre domaine Jira Cloud (ex: https://monentreprise.atlassian.net)

2. Email: L'email de votre compte Jira/Atlassian

3. Token API: Créez un token depuis votre profil Atlassian :

  • Allez sur id.atlassian.com
  • Cliquez sur "Create API token"
  • Donnez un nom descriptif (ex: "TowerControl")
  • Copiez le token généré

Note: Ces variables doivent être configurées dans l'environnement du serveur (JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN)

); }