- handleConfirmToggleAccount(accountToToggle as AccountToToggle)
+ onConfirm={(accountToToggle: AccountToToggle) =>
+ handleConfirmToggleAccount(accountToToggle)
}
onRequestClose={() => setAccountToToggle(undefined)}
/>
diff --git a/src/components/users/toggle-account-modal.tsx b/src/components/users/toggle-account-modal.tsx
index fc4afa07f..79a41fc61 100644
--- a/src/components/users/toggle-account-modal.tsx
+++ b/src/components/users/toggle-account-modal.tsx
@@ -1,34 +1,29 @@
-import { useState } from "react"
import Modal from "react-modal"
-import Loader from "../common/loader"
+import { toast } from "react-toastify"
const AccountToggleModal = ({
- disable,
+ account,
isOpen,
onConfirm,
onRequestClose,
}: {
- disable: boolean | undefined
+ account: AccountToToggle | undefined
isOpen: boolean
- onConfirm: () => Promise<{ status: number; body: string }>
+ onConfirm: (
+ accountTotoggle: AccountToToggle
+ ) => Promise<{ status: number; body: string }>
onRequestClose: () => void
}) => {
- const [isConfirmed, setIsConfirmed] = useState(false)
- const [response, setResponse] = useState<{ status: number; body: string }>()
-
const handleConfirm = async () => {
- setIsConfirmed(true)
- const response = await onConfirm()
- try {
- setResponse({ status: response.status, body: JSON.parse(response.body) })
- } catch {
- setResponse(response)
- }
+ toast.promise(onConfirm(account as AccountToToggle), {
+ pending: "En attente",
+ success: "Succès",
+ error: "Échec",
+ })
+ onRequestClose()
}
const handleRequestClose = () => {
- setIsConfirmed(false)
- setResponse(undefined)
onRequestClose()
}
@@ -44,39 +39,35 @@ const AccountToggleModal = ({
- {disable ? "Désactiver" : "Activer"} un accès
+ {account?.disable ? "Désactiver" : "Activer"} un accès
- {!isConfirmed ? (
- <>
-
- Vous allez {disable ? "désactiver" : "activer"} un accès utilisateur
- sur un outil de la Fabrique.
-
- Cela sera répercuté sur le service concerné.
-
-
-
- Annuler
-
-
- Confirmer
-
-
- >
- ) : !response ? (
-
+
+ Vous allez {account?.disable ? "désactiver" : "activer"} un accès
+ utilisateur sur un outil de la Fabrique.
+
+
+ {account?.disable && account?.account.type === "ovh" ? (
+
+ La désactivation d'un compte OVH consiste à{" "}
+ changer le mot de passe du compte de manière à ce que
+ l'utilisateur ne le connaisse plus. La réactivation consiste à
+ changer de nouveau le mot de passe et à l'envoyer par email à
+ l'utilisateur. Si l'email de l'utilisateur{" "}
+ n'est pas connu , la réactivation par Secrétariat{" "}
+ est impossible .
+
) : (
- <>
- Réponse du service :
-
- {JSON.stringify(response, null, 2)}
-
-
- Fermer
-
-
- >
+ Cela sera répercuté sur le service concerné.
)}
+
+
+
+ Annuler
+
+
+ Confirmer
+
+
)
}
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index 620d17fa3..0f38fdb71 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -8,6 +8,7 @@ import Layout from "@/components/layout"
import "@/styles/tailwind.scss"
import "@/styles/globals.scss"
+import { ToastProvider } from "@/components/common/toast-provider"
const MATOMO_URL = process.env.NEXT_PUBLIC_MATOMO_URL || ""
const MATOMO_SITE_ID = process.env.NEXT_PUBLIC_MATOMO_SITE_ID || ""
@@ -25,6 +26,7 @@ function App({
+
)
}
diff --git a/src/styles/components/modal.scss b/src/styles/components/modal.scss
index 383fdcd03..96f1efb0b 100644
--- a/src/styles/components/modal.scss
+++ b/src/styles/components/modal.scss
@@ -1,7 +1,7 @@
-.ReactModalPortal { /* stylelint-disable-line */
+.ReactModalPortal {
+ /* stylelint-disable-line */
.modal-overlay {
- @apply
- flex
+ @apply flex
z-30
mt-28
fixed
@@ -25,10 +25,10 @@
}
.modal {
- @apply
- p-4
+ @apply p-4
rounded
min-w-[50vw]
+ max-w-[50vw]
relative
shadow-lg
outline-none
@@ -46,8 +46,7 @@
@apply flex items-center;
& > .user {
- @apply
- flex-1
+ @apply flex-1
bg-grey-950-main
dark:bg-grey-100-main;
}