Skip to content

Commit ffbdbd7

Browse files
refactor(invitations): display error message on the modal instead of toast (#1535)
* refactor: display error message on the modal instead of toast * refactor: update invitation modal * refactor: update size of icon in message * refactor: add close button in message demo example
1 parent be5c007 commit ffbdbd7

4 files changed

Lines changed: 58 additions & 26 deletions

File tree

apps/demo/src/Views/Ui/components/Message.tsx

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,16 +71,28 @@ export const MessageDemo = () => {
7171
</Section>
7272

7373
<Section title={t("message.usage.severity")}>
74-
<Message message="Info message" severity="info" />
75-
<Message message="Success message" severity="success" />
76-
<Message message="Warning message" severity="warning" />
77-
<Message message="Danger message" severity="danger" />
74+
<Message message="Info message" severity="info" enableClose={true} />
75+
<Message
76+
message="Success message"
77+
severity="success"
78+
enableClose={true}
79+
/>
80+
<Message
81+
message="Warning message"
82+
severity="warning"
83+
enableClose={true}
84+
/>
85+
<Message
86+
message="Danger message"
87+
severity="danger"
88+
enableClose={true}
89+
/>
7890

7991
<CodeBlock
80-
exampleCode='<Message message="Info message" severity="info" />
81-
<Message message="Success message" severity="success" />
82-
<Message message="Warning message" severity="warning" />
83-
<Message message="Danger message" severity="danger" />'
92+
exampleCode='<Message message="Info message" severity="info" enableClose={true} />
93+
<Message message="Success message" severity="success" enableClose={true} />
94+
<Message message="Warning message" severity="warning" enableClose={true} />
95+
<Message message="Danger message" severity="danger" enableClose={true} />'
8496
/>
8597
</Section>
8698

packages/ui/src/assets/css/message.css

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,13 @@
2222
}
2323

2424
.message .close-message {
25-
color: var(--color);
2625
cursor: pointer;
2726
}
2827

28+
.message .close-message .pi {
29+
font-size: .85rem;
30+
}
31+
2932
.message.danger {
3033
--_background-color: var(--dz-danger-color);
3134
--_border-color: var(--dz-danger-color);

packages/ui/src/assets/css/modal.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838
}
3939

4040
.dz-modal .dz-modal-content {
41+
display: flex;
42+
flex-direction: column;
43+
gap: 1rem;
4144
padding: 0.7rem;
4245
}
4346

packages/user/src/components/Invitation/InvitationForm.tsx

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
AdditionalFormFields,
55
} from "@dzangolab/react-form";
66
import { useTranslation } from "@dzangolab/react-i18n";
7+
import { Message } from "@dzangolab/react-ui";
78
import React, { useCallback, useState } from "react";
89
import { toast } from "react-toastify";
910
import * as zod from "zod";
@@ -45,6 +46,7 @@ export const InvitationForm = ({
4546
const config = useConfig();
4647

4748
const [submitting, setSubmitting] = useState(false);
49+
const [error, setError] = useState(false);
4850

4951
const getDefaultValues = useCallback(() => {
5052
// eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -115,7 +117,7 @@ export const InvitationForm = ({
115117
.then((response) => {
116118
if ("data" in response && response.data.status === "ERROR") {
117119
// TODO better handle errors
118-
toast.error(t("messages.invite.error"));
120+
setError(true);
119121
} else {
120122
toast.success(t("messages.invite.success"));
121123

@@ -125,7 +127,7 @@ export const InvitationForm = ({
125127
}
126128
})
127129
.catch(() => {
128-
toast.error(t("messages.invite.error"));
130+
setError(true);
129131
})
130132
.finally(() => {
131133
setSubmitting(false);
@@ -175,20 +177,32 @@ export const InvitationForm = ({
175177
}
176178

177179
return (
178-
<Provider
179-
onSubmit={onSubmit}
180-
defaultValues={getDefaultValues()}
181-
validationSchema={InvitationFormSchema}
182-
validationTriggerKey={i18n.language}
183-
>
184-
<InvitationFormFields
185-
renderAdditionalFields={additionalInvitationFields?.renderFields}
186-
apps={apps}
187-
expiryDateField={expiryDateField}
188-
loading={submitting}
189-
onCancel={onCancel}
190-
roles={roles}
191-
/>
192-
</Provider>
180+
<>
181+
{error && (
182+
<Message
183+
enableClose={true}
184+
message={t("messages.invite.error")}
185+
onClose={() => {
186+
setError(false);
187+
}}
188+
severity="danger"
189+
/>
190+
)}
191+
<Provider
192+
onSubmit={onSubmit}
193+
defaultValues={getDefaultValues()}
194+
validationSchema={InvitationFormSchema}
195+
validationTriggerKey={i18n.language}
196+
>
197+
<InvitationFormFields
198+
renderAdditionalFields={additionalInvitationFields?.renderFields}
199+
apps={apps}
200+
expiryDateField={expiryDateField}
201+
loading={submitting}
202+
onCancel={onCancel}
203+
roles={roles}
204+
/>
205+
</Provider>
206+
</>
193207
);
194208
};

0 commit comments

Comments
 (0)