From c2681f9399ab8f8951ac9aa5362345b786589757 Mon Sep 17 00:00:00 2001
From: Julien Froidefond
Date: Fri, 19 Sep 2025 08:44:25 +0200
Subject: [PATCH] feat: enhance JiraConfigForm with conditional display and
instructions - Added state management for form visibility with `showForm` to
toggle display based on Jira configuration. - Implemented instructions for
configuration, detailing base URL, email, and API token setup. - Updated UI
to improve user interaction with a button to show/hide the form.
---
components/settings/JiraConfigForm.tsx | 66 +++++++++++++++++---------
1 file changed, 44 insertions(+), 22 deletions(-)
diff --git a/components/settings/JiraConfigForm.tsx b/components/settings/JiraConfigForm.tsx
index 9a77d2a..c952e88 100644
--- a/components/settings/JiraConfigForm.tsx
+++ b/components/settings/JiraConfigForm.tsx
@@ -20,6 +20,7 @@ export function JiraConfigForm() {
const [isValidating, setIsValidating] = useState(false);
const [validationResult, setValidationResult] = useState<{ type: 'success' | 'error', text: string } | null>(null);
const [message, setMessage] = useState<{ type: 'success' | 'error', text: string } | null>(null);
+ const [showForm, setShowForm] = useState(false);
// Charger les données existantes dans le formulaire
useEffect(() => {
@@ -34,6 +35,14 @@ export function JiraConfigForm() {
}
}, [config]);
+ // Afficher le formulaire par défaut si Jira n'est pas configuré
+ useEffect(() => {
+ const isConfigured = config?.enabled && (config?.baseUrl || config?.email);
+ if (!configLoading && !isConfigured) {
+ setShowForm(true);
+ }
+ }, [config, configLoading]);
+
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();
setIsSubmitting(true);
@@ -47,6 +56,8 @@ export function JiraConfigForm() {
type: 'success',
text: result.message
});
+ // Masquer le formulaire après une sauvegarde réussie
+ setShowForm(false);
} else {
setMessage({
type: 'error',
@@ -154,9 +165,18 @@ export function JiraConfigForm() {
}
-
- {isJiraConfigured ? '✓ Configuré' : '✗ Non configuré'}
-
+
+
+ {isJiraConfigured ? '✓ Configuré' : '✗ Non configuré'}
+
+
+
{isJiraConfigured && (
@@ -206,6 +226,7 @@ export function JiraConfigForm() {
)}
{/* Formulaire de configuration */}
+ {showForm && (
+ )}
{message && (
)}
-
- {/* 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)
-
-
-
);
}