+ {
+ getProfile.isPending || getCategories.isPending ?
+
+
-
+ {t('ticket.submit_your_message')}
-
- سوالات - مشکلاتی که به یک موضوع مربوط میشوند را در یک درخواست پشتیبانی پیگیر باشید و چند درخواست برای یک موضوع باز نکنید.
+
+
+ {
+ return {
+ label: item.firstName + ' ' + item.lastName,
+ value: item.id
+ }
+ })}
+ {...formik.getFieldProps('userId')}
+ />
+
+
+
+
+
+
+
+
+
+
+ ({
+ label: item.title,
+ value: item.id
+ })
+ )}
+ placeholder={t('select')}
+ className='border'
+ name='categoryId'
+ value={formik.values.categoryId}
+ onChange={formik.handleChange}
+ error_text={formik.touched.categoryId && formik.errors.categoryId ? formik.errors.categoryId : ''}
+ />
+
+
+
+
+
+
+
+
+
+
+
formik.handleSubmit()}
+ isLoading={createTicket.isPending || multiUpload.isPending}
+ >
+
+
+
+ {t('ticket.send')}
+
+
+
-
-
-
+
+
+
+ {t('ticket.title_hint')}
-
- لطفاً برای بررسی و رفع مشکلات احتمالی صبور باشید بررسی و رفع مشکلات در برخی موارد زمان گیر است.
-
-
-
-
-
-
-
- پاسخگویی 24 ساعته تلفنی را تنها از میهن وب هاست می توانید انتظار داشته باشید .بخش پشتیبانی در هر ساعتی حتی در روز های تعطیل آماده پیگیری سریع مشکلات کاربران است.
+
+
+
+
+
+
+
+ سوالات - مشکلاتی که به یک موضوع مربوط میشوند را در یک درخواست پشتیبانی پیگیر باشید و چند درخواست برای یک موضوع باز نکنید.
+
+
+
+
+
+
+
+ لطفاً برای بررسی و رفع مشکلات احتمالی صبور باشید بررسی و رفع مشکلات در برخی موارد زمان گیر است.
+
+
+
+
+
+
+
+ پاسخگویی 24 ساعته تلفنی را تنها از داناک می توانید انتظار داشته باشید .بخش پشتیبانی در هر ساعتی حتی در روز های تعطیل آماده پیگیری سریع مشکلات کاربران است.
+
+
-
-
+ }
+
+
)
diff --git a/src/pages/ticket/hooks/useTicketData.ts b/src/pages/ticket/hooks/useTicketData.ts
index 3846ec0..9336cd4 100644
--- a/src/pages/ticket/hooks/useTicketData.ts
+++ b/src/pages/ticket/hooks/useTicketData.ts
@@ -1,6 +1,10 @@
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import * as api from "../service/TicketServiec";
-import { AddMessageTicketType, CreateCategoryType } from "../types/TicketTypes";
+import {
+ AddMessageTicketType,
+ CreateCategoryType,
+ CreateTicketAdminType,
+} from "../types/TicketTypes";
export const useGetTickets = (
status: string,
@@ -67,3 +71,10 @@ export const useOpenTicket = () => {
mutationFn: (id: string) => api.openTicket(id),
});
};
+
+export const useCreateTicket = () => {
+ return useMutation({
+ mutationFn: (variables: CreateTicketAdminType) =>
+ api.createTicket(variables),
+ });
+};
diff --git a/src/pages/ticket/service/TicketServiec.ts b/src/pages/ticket/service/TicketServiec.ts
index 88d8213..27c9758 100644
--- a/src/pages/ticket/service/TicketServiec.ts
+++ b/src/pages/ticket/service/TicketServiec.ts
@@ -1,5 +1,9 @@
import axios from "../../../config/axios";
-import { AddMessageTicketType, CreateCategoryType } from "../types/TicketTypes";
+import {
+ AddMessageTicketType,
+ CreateCategoryType,
+ CreateTicketAdminType,
+} from "../types/TicketTypes";
export const getTickets = async (
status: string,
@@ -54,3 +58,8 @@ export const openTicket = async (id: string) => {
const { data } = await axios.post(`/tickets/${id}/open`);
return data;
};
+
+export const createTicket = async (params: CreateTicketAdminType) => {
+ const { data } = await axios.post(`/tickets/admin`, params);
+ return data;
+};
diff --git a/src/pages/ticket/types/TicketTypes.ts b/src/pages/ticket/types/TicketTypes.ts
index c9a3776..24687b4 100644
--- a/src/pages/ticket/types/TicketTypes.ts
+++ b/src/pages/ticket/types/TicketTypes.ts
@@ -79,3 +79,13 @@ export type CategoriesItemType = {
createdAt: string;
updatedAt: string;
};
+
+export type CreateTicketAdminType = {
+ subject: string;
+ priority: "LOW" | "MEDIUM" | "HIGH";
+ danakServiceId?: string;
+ categoryId: string;
+ message: string;
+ attachmentUrls?: string[];
+ userId: string;
+};