diff --git a/.env b/.env index 1cfb95b..53acdda 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ VITE_TOKEN_NAME = 'admin_token' VITE_REFRESH_TOKEN_NAME = 'admin_refresh_token' -VITE_BASE_URL = 'https://api.danakcorp.com' -# VITE_BASE_URL = 'http://10.86.60.88:3500' \ No newline at end of file +# VITE_BASE_URL = 'https://api.danakcorp.com' +VITE_BASE_URL = 'http://172.27.254.88:3500' \ No newline at end of file diff --git a/src/config/Pages.ts b/src/config/Pages.ts index 1f393d7..67426c0 100644 --- a/src/config/Pages.ts +++ b/src/config/Pages.ts @@ -4,6 +4,9 @@ export const Pages = { register: "/auth/register", forgotPassword: "/auth/forgot", }, + dmail: { + list: "/dmail/domain/list", + }, dashboard: "/dashboard", services: { mine: "/services", diff --git a/src/langs/fa.json b/src/langs/fa.json index 594313f..0fcc45c 100644 --- a/src/langs/fa.json +++ b/src/langs/fa.json @@ -83,7 +83,12 @@ "shops": "فروشگاه ها", "sms_count": "تعداد پیامک", "subscriptions": "اشتراک ها", - "financial": "مالی" + "financial": "مالی", + "dmail": "دی میل", + "domain": "دامنه" + }, + "dmail": { + "domain": "لیست دامنه ها" }, "slider": { "new_slider": "اسلایدر جدید", diff --git a/src/pages/dmail/Domains.tsx b/src/pages/dmail/Domains.tsx new file mode 100644 index 0000000..85ad0a3 --- /dev/null +++ b/src/pages/dmail/Domains.tsx @@ -0,0 +1,9 @@ +import { type FC } from 'react' + +const Domains: FC = () => { + return ( +
Domains
+ ) +} + +export default Domains \ No newline at end of file diff --git a/src/pages/dmail/hooks/useDmailData.ts b/src/pages/dmail/hooks/useDmailData.ts new file mode 100644 index 0000000..aa5bb2f --- /dev/null +++ b/src/pages/dmail/hooks/useDmailData.ts @@ -0,0 +1,15 @@ +import { useMutation, useQuery } from "@tanstack/react-query"; +import * as api from "../service/DmailService"; + +export const useGetDomains = () => { + return useQuery({ + queryKey: ["dmail-domains"], + queryFn: api.getDomains, + }); +}; + +export const useActiveDomain = () => { + return useMutation({ + mutationFn: api.activeDomain, + }); +}; diff --git a/src/pages/dmail/service/DmailService.ts b/src/pages/dmail/service/DmailService.ts new file mode 100644 index 0000000..288282a --- /dev/null +++ b/src/pages/dmail/service/DmailService.ts @@ -0,0 +1,12 @@ +import axios from "../../../config/axios"; +import { ActiveDomainType } from "../types/Types"; + +export const getDomains = async () => { + const { data } = await axios.get(`/dmail`); + return data; +}; + +export const activeDomain = async (params: ActiveDomainType) => { + const { data } = await axios.patch(`/dmail/${params.id}/active`, params); + return data; +}; diff --git a/src/pages/dmail/types/Types.ts b/src/pages/dmail/types/Types.ts new file mode 100644 index 0000000..9fcf97a --- /dev/null +++ b/src/pages/dmail/types/Types.ts @@ -0,0 +1,4 @@ +export type ActiveDomainType = { + isActive: boolean; + id: string; +}; diff --git a/src/shared/SideBar.tsx b/src/shared/SideBar.tsx index 1ae3528..b2663c8 100644 --- a/src/shared/SideBar.tsx +++ b/src/shared/SideBar.tsx @@ -2,7 +2,7 @@ import { FC, useEffect, useState } from 'react' import LogoImage from '../assets/images/logo.svg' import LogoSmall from '../assets/images/logo-small.svg' import { useTranslation } from 'react-i18next' -import { Card, Code, CodeCircle, DocumentLike, DocumentText, Element3, Gallery, Headphone, Home2, Logout, Messages3, Money3, NotificationStatus, People, Profile, Receipt21, Setting2, SmsTracking, Teacher, TicketDiscount, UserSquare, Activity, Icon, Category, Warning2, Building, Sms, Chart21, ArrowDown2 } from 'iconsax-react' +import { Card, Code, CodeCircle, DocumentLike, DocumentText, Element3, Gallery, Headphone, Home2, Logout, Messages3, Money3, NotificationStatus, People, Profile, Receipt21, Setting2, SmsTracking, Teacher, TicketDiscount, UserSquare, Activity, Icon, Category, Warning2, Building, Sms, Chart21, ArrowDown2, Global } from 'iconsax-react' import SideBarItem from './SideBarItem' import { useLocation } from 'react-router-dom' import { Pages } from '../config/Pages' @@ -533,6 +533,42 @@ const SideBar: FC = () => { } + { + adminPermissions?.data?.permissions?.some((permission: { name: string }) => permission.name === 'dmail') && + <> +
handleOpenMenu('dmail')} className={clx( + 'mt-10 px-12 text-header text-sm font-normal cursor-pointer', + hasSubMenu && 'px-2 text-center', + !hasSubMenu && 'flex gap-2 items-center' + )}> + {t('sidebar.dmail')} + +
+ +
+
+
+ +
+ } + title={t('sidebar.domain')} + isActive={isActive('dmail/domain/list')} + link={Pages.dmail.list} + activeName='dmail' + /> +
+
+ + }