From 3e31a813ee42a00ef5307b70414604e24099cd0b Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Wed, 20 Aug 2025 14:48:55 +0330 Subject: [PATCH] feed back --- .env | 3 + src/App.tsx | 2 + src/assets/images/sad1.png | Bin 0 -> 2983 bytes src/assets/images/sad2.png | Bin 0 -> 5194 bytes src/assets/images/sad3.png | Bin 0 -> 3455 bytes src/assets/images/smile.png | Bin 0 -> 3630 bytes src/assets/images/smile2.png | Bin 0 -> 5395 bytes src/assets/images/smile3.png | Bin 0 -> 5144 bytes src/components/DefaulModal.tsx | 2 +- src/components/RowActionsDropdown.tsx | 9 +- src/components/Switch.tsx | 10 +- src/index.css | 5 + src/pages/guide/ReportBug.tsx | 128 +++++++++++++++++++++++ src/pages/guide/hooks/useFeedbackData.ts | 9 ++ src/pages/guide/service/Service.ts | 7 ++ src/pages/guide/types/Types.ts | 7 ++ src/shared/Header.tsx | 21 +++- src/shared/store/sharedStore.ts | 2 + src/shared/types/SharedTypes.ts | 2 + 19 files changed, 197 insertions(+), 10 deletions(-) create mode 100644 src/assets/images/sad1.png create mode 100644 src/assets/images/sad2.png create mode 100644 src/assets/images/sad3.png create mode 100644 src/assets/images/smile.png create mode 100644 src/assets/images/smile2.png create mode 100644 src/assets/images/smile3.png create mode 100644 src/pages/guide/ReportBug.tsx create mode 100644 src/pages/guide/hooks/useFeedbackData.ts create mode 100644 src/pages/guide/service/Service.ts create mode 100644 src/pages/guide/types/Types.ts diff --git a/.env b/.env index 546c985..464ef2a 100644 --- a/.env +++ b/.env @@ -2,6 +2,7 @@ VITE_TOKEN_NAME = 'dmail_token' VITE_REFRESH_TOKEN_NAME = 'dmail_refresh_token' VITE_DANAK_BASE_URL ='https://api.danakcorp.com' +# VITE_DANAK_BASE_URL ='http://192.168.1.112:4001' VITE_SOCKET_URL = 'wss://dmail-api.danakcorp.com/email' # VITE_SOCKET_URL = 'ws://192.168.1.106:4000/email' @@ -9,6 +10,8 @@ VITE_SOCKET_URL = 'wss://dmail-api.danakcorp.com/email' VITE_BASE_URL = 'https://dmail-api.danakcorp.com' # VITE_BASE_URL = 'http://192.168.1.117:4000' +VITE_HELP_URL = 'https://help.danakcorp.com' + VITE_SERVICE_ID = 'e51afdc3-ea0b-49cf-8f49-2a6f131b024e' diff --git a/src/App.tsx b/src/App.tsx index e4aebcd..571e69f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -20,6 +20,7 @@ import { EmailWebSocketProvider } from './contexts/EmailWebSocketContext'; import SocketManagment from './lib/SocketManagment'; import NajvaToken from './components/NajvaToken'; import { ThemeProvider } from './contexts/ThemeContext'; +import ReportBug from '@/pages/guide/ReportBug'; declare global { interface Window { @@ -131,6 +132,7 @@ const App: FC = () => {
+ ) : isLogin === 'isNotLogin' ? ( diff --git a/src/assets/images/sad1.png b/src/assets/images/sad1.png new file mode 100644 index 0000000000000000000000000000000000000000..dd56d28fe92de44cfa40532daa354c0634bdf9a0 GIT binary patch literal 2983 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 Eg8!NoBLDyZ literal 0 HcmV?d00001 diff --git a/src/assets/images/sad3.png b/src/assets/images/sad3.png new file mode 100644 index 0000000000000000000000000000000000000000..c9dc8f61a3cfd440a9a6b52308662ecdf287b9a8 GIT binary patch literal 3455 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/smile.png b/src/assets/images/smile.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ce32965bfef05b8f0abfce6d56066b7a01943c GIT binary patch literal 3630 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 AF#rGn literal 0 HcmV?d00001 diff --git a/src/assets/images/smile2.png b/src/assets/images/smile2.png new file mode 100644 index 0000000000000000000000000000000000000000..542d1f18c8ae3f455ee6181f240862cd094f1dca GIT binary patch literal 5395 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 z zS3;hmi0kuQ{(-~`RdO5mI$0nE2r@4(B{UvRB75Qe_uqeutAlof>Q+p+jHlJ;j?y73 z@WEv7utMKBp%4Dsh?I@@agm8^+_-V$gkZ%5=ZB2VQ`I2|;Sj6jLOOSlOJ7ju8P#bu zn4GzW4IB2a6eMt4wr}5_KqjJy4?k3PY{>1Sily-m_>n%LAVD%QF){Ho5WwsNEom)< zgb}h_)b$6m9r!vNg54`;%g@h$(s&TAkS0vuDp&XmJhM-Me@9v|u#E$ca%q z$JE%xc@UPJ80ONQ;05o%X~6)G(`xv>a^=b~Rxm(3)~J+zdV2bMW*KFp?TXRh%*x7o z)e0-g)v`J9@5o*L8X4h&vM$!)6^uU82#UE7FK}yComeb34f26m&xkxhwUg^CE-t>4 zOhi$6dHK+G>liX*$a}^uK9VVNMR%KRzTF&ty@!wloKl_0vxZB1t1$baNxk# z$YexFr1=gaeuat6Og$64G34o|pS}&lo{s@?c{#I{H+dfxWd?mx7q<04(TDWjwqrYo170AYL8StMxQ(ayCJa1d&Z{?`c z+QfHu_>_`S|eR!}mhzeQLMcd5vc+{_h3jq2K=f`zM_`b!u8wRTaCX<5|QAh*Ffv zjERDw@SD22x*5y>U)QU))23*_>}zOG0@~9$s<=Y|Sn2a#HCwye4Y(k2=(x(1bRZ&j zK%@&=Y043So?b*I;(|PTZ_uB6(d}P*N#J4Gp@|rMPs{Hwkh>(|ebN8mm$>6|807KF zx=UjU{5|;=S}svKF?d1jqV&p)KrZg3!ZK>&(+NcVmYBm#T-HBCp2zJ7v05eD>vMs+ z^LvcSMKdFYYD-{$#(E zKFckbiRFreGPE;~Ae#?~be1{Z^mBvU++02gR@+6%MD$k#$#dyMJ|~#_uIQ;&cOFew zK@4qFeW8R+Vn~%Q^lAMmTypKILRM?19l~0AETF=Ds9To#zyl9V8a#OLJ`$f}A>Z{v z6Fj7cOG--S$}noM=BEj+F|c^FJ>W(wPnz27z6iK(&Io@G2joppJ47SLgraexez(It zc%%60)vMNp`*zx8sSUoxwB zxS%>4RjjPzk2%Cd8Y4mluC{Z-&!`SD(VdoQvy3KO5W6f$J?tbSnmWQ29d3~AgLpnJ zyun7#f<_;hz}c45LO7+gb5i9IG~~&M>+pcaapj>F2jKuoR51cP7$Ef~yZ|didTVJQ zhL#O>HhVXf{vN>y7iQc;L#Yru8bn((C5(303K69A#6o|*Bl3i%?Xuvsv^41fHI;{O z&dm{dI`wxHr1usM#9?G2js*jph|~XC^2!2!8f_L$9>3iE}ElD+x>hQT;cLl!D0XEpiKmO*y~zn z_B}FcF>UR_$yK#r!GZ#PehLG)bRknd0}!I;l&$5n#b&N_r<}0fefQnc6&^V!=gZ!J z;kk>5+G~jBg%u9CYrHH(d^oSw45ko*z7A#rCROwJW7+~|)6W*$#OKQ}O3sS!$3>=C zm5j*C%i{xl1{U!Myd#h)Lr+Z3N-AO!Di1}*2`AFy~Q>Oe&Sy|aQx5N4Z0AA;WI6}rf_uR8a z#6UCyg3U@V#BUX!adB~H#j*RgP>7$94Skmg8zafiw8`R5*zGX zVviS}^q!KEas~nZ6SyBktoA~6b@iX|e-p}MqV@oxVjjP!@dn5!{iZ#aV(*w9#M;p);QZsPS+nNv-Me>}==~0xMV}JrFwplLUIs!f$36Qp zGE|}~Bx%XL=Sw0tW@l&1fK{jccBmWZnepI*4^HK?e~4PcmX^ek1HD)b%1(h1P*YS? zR4Q=pnjdY_o1?rGkXQTRQ8W33PEcAVA-J5n5GkL6{K->KJvH8lW0wY_Df-AGkK_&- zG>EO0Yorq=!LBbNop>^o)d<4>uC%nYSSo&3kZWFpfxiI{kz(=(JRwg20000 = (props: Props) => { { props.isHeader && props.title_header && -
+
diff --git a/src/components/RowActionsDropdown.tsx b/src/components/RowActionsDropdown.tsx index 43c6846..f4d253e 100644 --- a/src/components/RowActionsDropdown.tsx +++ b/src/components/RowActionsDropdown.tsx @@ -13,9 +13,10 @@ export interface RowActionItem { interface RowActionsDropdownProps { actions: RowActionItem[]; className?: string; + trigger?: React.ReactNode; } -const RowActionsDropdown: React.FC = ({ actions, className = '' }) => { +const RowActionsDropdown: React.FC = ({ actions, className = '', trigger }) => { const [isOpen, setIsOpen] = useState(false) const [position, setPosition] = useState({ top: 0, left: 0 }) const dropdownRef = useRef(null) @@ -102,8 +103,12 @@ const RowActionsDropdown: React.FC = ({ actions, classN ref={buttonRef} onClick={handleToggle} className="mt-2 hover:bg-gray-100 dark:hover:bg-[#2d2d30] rounded-full transition-colors" + aria-haspopup="menu" + aria-expanded={isOpen} > - + {trigger ? trigger : ( + + )} {renderDropdown()} diff --git a/src/components/Switch.tsx b/src/components/Switch.tsx index 36e8956..1cbf691 100644 --- a/src/components/Switch.tsx +++ b/src/components/Switch.tsx @@ -19,20 +19,22 @@ const SwitchComponent = (props: Props) => { {({ checked }) => ( )} { props.label && -
+
: {props.label}
} diff --git a/src/index.css b/src/index.css index 25c8051..9c8543c 100644 --- a/src/index.css +++ b/src/index.css @@ -519,3 +519,8 @@ strong { filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7416%) hue-rotate(296deg) brightness(109%) contrast(97%); } + +.filterBlue { + filter: brightness(0) saturate(100%) invert(9%) sepia(100%) saturate(7246%) + hue-rotate(236deg) brightness(111%) contrast(112%); +} diff --git a/src/pages/guide/ReportBug.tsx b/src/pages/guide/ReportBug.tsx new file mode 100644 index 0000000..ebfa583 --- /dev/null +++ b/src/pages/guide/ReportBug.tsx @@ -0,0 +1,128 @@ +import React, { useMemo, useState } from 'react' +import DefaulModal from '@/components/DefaulModal' +import Textarea from '@/components/Textarea' +import Button from '@/components/Button' +import { useSharedStore } from '@/shared/store/sharedStore' +import { useSendFeedback } from './hooks/useFeedbackData' +import { toast } from '@/components/Toast' +import { ErrorType } from '@/helpers/types' +import { useTheme } from '@/contexts/ThemeContext' + + +// Import images +import sad1 from '@/assets/images/sad1.png' +import sad2 from '@/assets/images/sad2.png' +import sad3 from '@/assets/images/sad3.png' +import smile from '@/assets/images/smile.png' +import smile2 from '@/assets/images/smile2.png' +import smile3 from '@/assets/images/smile3.png' +import { useGetProfile } from '../profile/hooks/useProfileData' + +const ReportBug: React.FC = () => { + const { openReportBug, setOpenReportBug } = useSharedStore() + const [description, setDescription] = useState('') + const [feeling, setFeeling] = useState(null) + const { data } = useGetProfile() + const { mutate: sendReportBug, isPending } = useSendFeedback() + const { theme } = useTheme() + + const isValid = useMemo(() => description.trim().length > 0, [description]) + + const getRatingFromFeeling = (feeling: string | null): number => { + if (!feeling) return 0 + + const feelingMap: Record = { + 'angry': 1, // sad1 + 'crying': 2, // sad2 + 'sad': 3, // sad3 + 'neutral': 4, // smile + 'smile': 5, // smile2 + 'love': 6, // smile3 + } + + return feelingMap[feeling] || 0 + } + + const handleSubmit = async () => { + if (!isValid) return + + sendReportBug({ + content: description, + rating: getRatingFromFeeling(feeling), + serviceId: import.meta.env.VITE_SERVICE_ID, + email: data?.data?.user?.emailAddress, + }, { + onSuccess: () => { + toast('گزارش با موفقیت ارسال شد', 'success') + setDescription('') + setFeeling(null) + setOpenReportBug(false) + }, + onError: (error: ErrorType) => { + toast(error.response?.data?.error?.message[0], 'error') + } + }) + } + + const feelings = [ + { id: 'angry', image: sad1, alt: 'ناراضی' }, + { id: 'crying', image: sad2, alt: 'ناراضی' }, + { id: 'sad', image: sad3, alt: 'ناراضی' }, + { id: 'neutral', image: smile, alt: 'خنثی' }, + { id: 'smile', image: smile2, alt: 'راضی' }, + { id: 'love', image: smile3, alt: 'راضی' }, + ] + + return ( + setOpenReportBug(false)} isHeader title_header='گزارش اشکالات' width={500}> +
+
+ لطفاً در صورت مشاهده هرگونه اشکال یا باگ در سایت، از طریق این فرم گزارش دهید. همچنین می‌توانید بازخورد، نظر یا پیشنهادات خود را درباره سایت با ما به اشتراک بگذارید. اطلاعات دقیق شما به ما کمک می‌کند مشکلات را سریع‌تر برطرف کنیم و کیفیت سایت را بهبود بخشیم. +
+ +