From f45273fc964029d427d945fcc801c3872752203a Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Mon, 5 May 2025 16:59:48 +0330 Subject: [PATCH] support plan --- src/assets/images/support.png | Bin 0 -> 21144 bytes src/components/ServiceItem.tsx | 2 +- src/components/Tabs.tsx | 2 +- src/config/Pages.ts | 3 + src/index.css | 3 + src/langs/fa.json | 25 ++- .../home/components/BoxNewAccessbility.tsx | 8 + src/pages/notification/Notification.tsx | 5 +- src/pages/service/DetailService.tsx | 4 +- src/pages/service/components/HeaderBuy.tsx | 2 +- src/pages/service/hooks/useServiceData.ts | 7 + src/pages/service/service/ServiceService.ts | 5 + src/pages/service/types/ServiecTypes.ts | 2 + src/pages/setting/components/Sms.tsx | 8 +- src/pages/support/Support.tsx | 209 ++++++++++++++++++ src/pages/support/components/SidebarHint.tsx | 67 ++++++ src/pages/support/components/SupportIcon.tsx | 45 ++++ .../support/components/SupportSkeleton.tsx | 94 ++++++++ src/pages/support/enum/SupportEnum.ts | 11 + src/pages/support/hooks/useSupportData.ts | 12 + src/pages/support/service/SupportService.ts | 11 + src/pages/support/types/SupportTypes.ts | 22 ++ src/pages/wallet/components/Sheba.tsx | 3 + src/router/Main.tsx | 2 + src/shared/SideBar.tsx | 9 +- 25 files changed, 552 insertions(+), 9 deletions(-) create mode 100644 src/assets/images/support.png create mode 100644 src/pages/support/Support.tsx create mode 100644 src/pages/support/components/SidebarHint.tsx create mode 100644 src/pages/support/components/SupportIcon.tsx create mode 100644 src/pages/support/components/SupportSkeleton.tsx create mode 100644 src/pages/support/enum/SupportEnum.ts create mode 100644 src/pages/support/hooks/useSupportData.ts create mode 100644 src/pages/support/service/SupportService.ts create mode 100644 src/pages/support/types/SupportTypes.ts diff --git a/src/assets/images/support.png b/src/assets/images/support.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd6a5e2faa5e4126331412bbc3533ec23b1cf3a GIT binary patch literal 21144 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 RR{@da5pxqO<0`ZV;s4f35N!Ye literal 0 HcmV?d00001 diff --git a/src/components/ServiceItem.tsx b/src/components/ServiceItem.tsx index 1de3f4a..9a6bf8f 100644 --- a/src/components/ServiceItem.tsx +++ b/src/components/ServiceItem.tsx @@ -54,7 +54,7 @@ const ServiceItem: FC = (props: Props) => {

- +
+ + ) + }) + } + + +
+
+ { + data?.data?.supportPlans?.[0]?.features.map((row: featureItemType) => ( +
+
+
+ +
+
{t(`support.${row.featureKey}`)}
+
+
+ )) + } +
+ { + data?.data?.supportPlans?.map((item: PlanItemType) => ( +
+ { + item.features.map((row) => ( +
+ { + row.featureType === 'boolean' ? + row.featureValue === 'true' ? + + : + + : +
{row.featureValue}
+ } +
+ )) + } +
+ )) + } +
+ + {/* Mobile View */} +
+ { + data?.data?.supportPlans?.map((plan: PlanItemType) => ( + activeTab === plan.id && ( +
+
+ support +
+
+
{plan.name}
+
ماهیانه
+
{NumberFormat(plan.price)}
+
تومان
+
+
+ { + plan.features.map((row: featureItemType) => ( +
+
+
+ +
+
{t(`support.${row.featureKey}`)}
+
+ { + row.featureType === 'boolean' ? + row.featureValue === 'true' ? + + : + + : +
{row.featureValue}
+ } +
+ )) + } +
+
+ ) + )) + } +
+ + + + + + ) +} + +export default Support \ No newline at end of file diff --git a/src/pages/support/components/SidebarHint.tsx b/src/pages/support/components/SidebarHint.tsx new file mode 100644 index 0000000..90112c2 --- /dev/null +++ b/src/pages/support/components/SidebarHint.tsx @@ -0,0 +1,67 @@ +import { TickSquare } from 'iconsax-react' +import { FC } from 'react' + +const SidebarHint: FC = () => { + return ( +
+
+ جهت انتخاب بهتر به مسائل زیر توجه بفرمایید: +
+ +
+
+
+ +
+
+ سوالات - مشکلاتی که به یک موضوع مربوط میشوند را در یک درخواست پشتیبانی پیگیر باشید و چند درخواست برای یک موضوع باز نکنید. +
+
+
+
+ +
+
+ لطفاً برای بررسی و رفع مشکلات احتمالی صبور باشید بررسی و رفع مشکلات در برخی موارد زمان گیر است. +
+
+
+
+ +
+
+ پاسخگویی 24 ساعته تلفنی را تنها از میهن وب هاست می توانید انتظار داشته باشید .بخش پشتیبانی در هر ساعتی حتی در روز های تعطیل آماده پیگیری سریع مشکلات کاربران است. +
+
+
+
+ +
+
+ لطفاً برای بررسی و رفع مشکلات احتمالی صبور باشید بررسی و رفع مشکلات در برخی موارد زمان گیر است. +
+
+ +
+
+ +
+
+ لطفاً برای بررسی و رفع مشکلات احتمالی صبور باشید بررسی و رفع مشکلات در برخی موارد زمان گیر است. +
+
+ +
+
+ +
+
+ لطفاً برای بررسی و رفع مشکلات احتمالی صبور باشید بررسی و رفع مشکلات در برخی موارد زمان گیر است. +
+
+
+
+ ) +} + +export default SidebarHint \ No newline at end of file diff --git a/src/pages/support/components/SupportIcon.tsx b/src/pages/support/components/SupportIcon.tsx new file mode 100644 index 0000000..141129f --- /dev/null +++ b/src/pages/support/components/SupportIcon.tsx @@ -0,0 +1,45 @@ +import { FC } from 'react' +import { SupportPlanFeatureKey } from '../enum/SupportEnum' +import { + Document, + MessageQuestion, + Clock, + Call, + Save2, + Profile2User, + Location, + Teacher, + Ticket +} from 'iconsax-react' + +type Props = { + keySupport: SupportPlanFeatureKey +} + +const SupportIcon: FC = ({ keySupport }) => { + + switch (keySupport) { + case SupportPlanFeatureKey.LEARNING_DOCS: + return + case SupportPlanFeatureKey.TICKET_SUPPORT: + return + case SupportPlanFeatureKey.RESPONSE_TIME: + return + case SupportPlanFeatureKey.PHONE_SUPPORT: + return + case SupportPlanFeatureKey.BACKUP_VERSION: + return + case SupportPlanFeatureKey.TECHNICAL_EXPERT_ACCESS: + return + case SupportPlanFeatureKey.ON_SITE_SUPPORT: + return + case SupportPlanFeatureKey.ON_SITE_TRAINING: + return + case SupportPlanFeatureKey.TICKET_LIMIT: + return + default: + return + } +} + +export default SupportIcon \ No newline at end of file diff --git a/src/pages/support/components/SupportSkeleton.tsx b/src/pages/support/components/SupportSkeleton.tsx new file mode 100644 index 0000000..842419b --- /dev/null +++ b/src/pages/support/components/SupportSkeleton.tsx @@ -0,0 +1,94 @@ +import { FC } from 'react' +import { Document } from 'iconsax-react' + +const SupportSkeleton: FC = () => { + return ( +
+
+
+ {/* Desktop View */} +
+
+
+
+ + {[1, 2].map((item) => ( +
+
+
+
+
+
+
+
+
+ ))} +
+ +
+
+ {[1, 2, 3, 4, 5].map((item) => ( +
+
+
+
+
+
+ ))} +
+ {[1, 2].map((item) => ( +
+ {[1, 2, 3, 4, 5].map((feature) => ( +
+
+
+ ))} +
+ ))} +
+ + {/* Mobile View */} +
+
+
+
+
+
+
+
+
+
+
+
+ {[1, 2, 3, 4, 5].map((item) => ( +
+
+
+
+
+
+
+ ))} +
+
+
+ +
+
+
+
+ {[1, 2, 3].map((item) => ( +
+
+
+
+ ))} +
+
+
+
+
+ ) +} + +export default SupportSkeleton \ No newline at end of file diff --git a/src/pages/support/enum/SupportEnum.ts b/src/pages/support/enum/SupportEnum.ts new file mode 100644 index 0000000..1c587d2 --- /dev/null +++ b/src/pages/support/enum/SupportEnum.ts @@ -0,0 +1,11 @@ +export enum SupportPlanFeatureKey { + LEARNING_DOCS = "learning_docs", // راهنما و مستندات آموزشی + TICKET_SUPPORT = "ticket_support", // ارسال تیکت + RESPONSE_TIME = "response_time", // زمان پاسخگویی به تیکت + PHONE_SUPPORT = "phone_support", // پاسخگویی تلفنی + BACKUP_VERSION = "backup_version", // نسخه بکاپ + TECHNICAL_EXPERT_ACCESS = "technical_expert_access", // دسترسی به متخصصین فنی + ON_SITE_SUPPORT = "on_site_support", // پشتیبانی در محل + ON_SITE_TRAINING = "on_site_training", // آموزش در محل + TICKET_LIMIT = "ticket_limit", // ظرفیت ارسال تیکت +} diff --git a/src/pages/support/hooks/useSupportData.ts b/src/pages/support/hooks/useSupportData.ts new file mode 100644 index 0000000..0c270b8 --- /dev/null +++ b/src/pages/support/hooks/useSupportData.ts @@ -0,0 +1,12 @@ +import { useQuery, useMutation } from "@tanstack/react-query"; +import { getSupportPlans, buySupportPlan } from "../service/SupportService"; + +export const useGetSupportPlans = () => { + return useQuery({ queryKey: ["support-plans"], queryFn: getSupportPlans }); +}; + +export const useBuySupportPlan = () => { + return useMutation({ + mutationFn: (planId: string) => buySupportPlan(planId), + }); +}; diff --git a/src/pages/support/service/SupportService.ts b/src/pages/support/service/SupportService.ts new file mode 100644 index 0000000..309cb2a --- /dev/null +++ b/src/pages/support/service/SupportService.ts @@ -0,0 +1,11 @@ +import axios from "../../../config/axios"; + +export const getSupportPlans = async () => { + const { data } = await axios.get("/support-plans"); + return data; +}; + +export const buySupportPlan = async (planId: string) => { + const { data } = await axios.post(`/support-plans/${planId}/subscribe`); + return data; +}; diff --git a/src/pages/support/types/SupportTypes.ts b/src/pages/support/types/SupportTypes.ts new file mode 100644 index 0000000..b281010 --- /dev/null +++ b/src/pages/support/types/SupportTypes.ts @@ -0,0 +1,22 @@ +export type featureItemType = { + id: string; + createdAt: string; + updatedAt: string; + featureKey: string; + featureValue: string; + featureType: string; + icon: string | null; +}; + +export type PlanItemType = { + id: string; + createdAt: string; + updatedAt: string; + name: string; + description: string; + price: number; + duration: number; + isActive: boolean; + features: featureItemType[]; + deletedAt: string | null; +}; diff --git a/src/pages/wallet/components/Sheba.tsx b/src/pages/wallet/components/Sheba.tsx index 1430418..f5bf925 100644 --- a/src/pages/wallet/components/Sheba.tsx +++ b/src/pages/wallet/components/Sheba.tsx @@ -51,6 +51,9 @@ const CardtoCard: FC = () => { toast(error.response?.data?.error?.message[0], 'error') } }) + }, + onError: (error: ErrorType) => { + toast(error.response?.data?.error?.message[0], 'error') } }) } diff --git a/src/router/Main.tsx b/src/router/Main.tsx index 29f0498..07a6355 100644 --- a/src/router/Main.tsx +++ b/src/router/Main.tsx @@ -29,6 +29,7 @@ import CallBack from '../pages/payment/CallBack' import MyDiscountList from '../pages/discounts/List' import LearningDetail from '../pages/learning/Detail' import BuyService from '../pages/service/BuyService' +import Support from '../pages/support/Support' const MainRouter: FC = () => { return ( @@ -40,6 +41,7 @@ const MainRouter: FC = () => {
} /> + } /> } /> } /> } /> diff --git a/src/shared/SideBar.tsx b/src/shared/SideBar.tsx index c01852b..b6d6c3a 100644 --- a/src/shared/SideBar.tsx +++ b/src/shared/SideBar.tsx @@ -1,7 +1,7 @@ import { FC } from 'react' import LogoImage from '../assets/images/logo.svg' import { useTranslation } from 'react-i18next' -import { Card, DocumentText, Element3, Element4, Home2, Logout, Messages3, NotificationStatus, Receipt21, Setting2, Teacher } from 'iconsax-react' +import { Card, DocumentText, Element3, Element4, Headphone, Home2, Logout, Messages3, NotificationStatus, Receipt21, Setting2, Teacher } from 'iconsax-react' import SideBarItem from './SideBarItem' import { useLocation } from 'react-router-dom' import { Pages } from '../config/Pages' @@ -53,6 +53,13 @@ const SideBar: FC = () => { isActive={isActive('services')} link={Pages.services.mine} /> + + } + title={t('sidebar.support')} + isActive={isActive('support')} + link={Pages.support.index} + /> } title={t('sidebar.other_service')}