Skip to content

Commit 1c84e26

Browse files
authored
Fix ticket loading (#295)
1 parent e2c5387 commit 1c84e26

File tree

3 files changed

+32
-8
lines changed

3 files changed

+32
-8
lines changed

src/pages/tickets/adminTicketResolve.tsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import { GetTicket, resolveTicket } from "../../redux/actions/ticketActions";
66
import { useDispatch, useSelector } from "react-redux";
77
import { connect } from "react-redux";
88
import { toast, ToastContainer } from "react-toastify";
9+
import { ThreeDots } from "react-loader-spinner";
910

1011
const ResolveTicketPage = (props: any) => {
1112
const dispatch = useDispatch();
1213
const params = useParams();
1314
const [ticketId, setTicketId] = useState(params.id);
1415
const [adminReply, setAdminReply] = useState("");
1516
const ticketData = useSelector((state: any) => state.tickets?.currentTicket);
17+
const [isSubmitting, setIsSubmitting] = useState(false);
1618

1719
const getAllReplies = () => {
1820
if (!ticketData) return [];
@@ -46,13 +48,17 @@ const ResolveTicketPage = (props: any) => {
4648
e.preventDefault();
4749
if (ticketId && adminReply.trim()) {
4850
try {
51+
setIsSubmitting(true);
4952
await dispatch(resolveTicket(ticketId, adminReply));
5053
setAdminReply("");
5154
await dispatch(GetTicket(ticketId));
52-
toast.success("Ticket Resolved Successfully");
55+
// toast.success("Ticket Resolved Successfully");
56+
5357
} catch (error) {
5458
toast.error("Failed to resolve ticket")
5559
console.error("Failed to resolve ticket:", error);
60+
} finally{
61+
setIsSubmitting(false);
5662
}
5763
}
5864
};
@@ -135,10 +141,14 @@ const ResolveTicketPage = (props: any) => {
135141
/>
136142
<button
137143
type="submit"
138-
disabled={!adminReply.trim()}
144+
disabled={isSubmitting}
139145
className="px-4 py-2 bg-button-color dark:bg-green text-white rounded-lg "
140146
>
141-
Submit Response
147+
{isSubmitting ? (
148+
<ThreeDots height="20" width="30" color="#ffffff" />
149+
) : (
150+
"Submit Response"
151+
)}
142152
</button>
143153
</div>
144154
</form>

src/pages/tickets/applicantTicketReply.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@ import { GetTicket, updateTicket } from "../../redux/actions/ticketActions";
66
import { useDispatch, useSelector } from "react-redux";
77
import { connect } from "react-redux";
88
import { toast, ToastContainer } from "react-toastify";
9+
import { ThreeDots } from "react-loader-spinner";
10+
911

1012
const ReplyTicketPage = (props: any) => {
1113
const dispatch = useDispatch();
1214
const params = useParams();
1315
const [ticketId, setTicketId] = useState(params.id);
1416
const [applicantReply, setApplicantReply] = useState("");
1517
const ticketData = useSelector((state: any) => state.tickets?.currentTicket);
18+
const [isSubmitting, setIsSubmitting] = useState(false);
1619

1720
const getAllReplies = () => {
1821
if (!ticketData) return [];
@@ -48,16 +51,20 @@ const ReplyTicketPage = (props: any) => {
4851
e.preventDefault();
4952
if (ticketId && applicantReply.trim()) {
5053
try {
54+
setIsSubmitting(true);
5155
await dispatch(updateTicket(
5256
ticketId,
5357
applicantReply
5458
));
5559
setApplicantReply("");
5660
await dispatch(GetTicket(ticketId));
5761
// toast.success("Ticket Updated Successfully");
62+
5863
} catch (error) {
5964
toast.error("Failed to update ticket")
6065
console.error("Failed to update ticket:", error);
66+
} finally{
67+
setIsSubmitting(false);
6168
}
6269
}
6370
};
@@ -139,10 +146,14 @@ const ReplyTicketPage = (props: any) => {
139146
/>
140147
<button
141148
type="submit"
142-
disabled={!applicantReply.trim()}
149+
disabled={isSubmitting}
143150
className="px-4 py-2 bg-button-color dark:bg-green text-white rounded-lg "
144151
>
145-
Submit Response
152+
{isSubmitting ? (
153+
<ThreeDots height="20" width="30" color="#ffffff" />
154+
) : (
155+
"Submit Response"
156+
)}
146157
</button>
147158
</div>
148159
</form>

src/pages/tickets/createTicketModal.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,17 @@ const CreateTicketModal = ({ isOpen, onClose, onSubmit }) => {
6363
type="text"
6464
value={ticket.title}
6565
onChange={(e) =>
66-
setTicket((prev) => ({ ...prev, title: e.target.value }))
66+
setTicket((prev) => ({
67+
...prev,
68+
title: e.target.value,
69+
}))
6770
}
6871
className="w-full px-4 py-2 border rounded-md focus:ring-2 focus:ring-white dark:bg-gray-700 dark:border-gray-600 dark:text-white"
6972
placeholder="Enter the subject of your ticket"
7073
required
7174
/>
7275
</div>
73-
76+
7477
<div>
7578
<label className="block text-sm font-medium text-gray-700 dark:text-gray-200 mb-2">
7679
Description <span className="text-red-500">*</span>
@@ -88,7 +91,7 @@ const CreateTicketModal = ({ isOpen, onClose, onSubmit }) => {
8891
required
8992
/>
9093
</div>
91-
94+
9295
<div className="flex space-x-4">
9396
<button
9497
className="flex bg-primary dark:bg-[#56C870] rounded-md py-2 px-4 text-white font-medium cursor-pointer"

0 commit comments

Comments
 (0)