From 94a6b2beba6df5b1bdbab4c4a49bec613de7a7e5 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Sun, 13 Jul 2025 16:32:21 +0330 Subject: [PATCH] signture + --- src/assets/images/logo.svg | 115 ++++-------------- src/langs/fa.json | 6 +- src/pages/setting/signture/Signture.tsx | 86 ++++++++++++- .../signture/hooks/useSignatureData.ts | 37 ++++++ src/pages/setting/signture/service/Service.ts | 21 ++++ src/pages/setting/signture/types/Types.ts | 23 ++++ src/shared/SideBar.tsx | 8 +- 7 files changed, 195 insertions(+), 101 deletions(-) create mode 100644 src/pages/setting/signture/hooks/useSignatureData.ts create mode 100644 src/pages/setting/signture/service/Service.ts create mode 100644 src/pages/setting/signture/types/Types.ts diff --git a/src/assets/images/logo.svg b/src/assets/images/logo.svg index 200db25..cb3dfe3 100644 --- a/src/assets/images/logo.svg +++ b/src/assets/images/logo.svg @@ -1,91 +1,24 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/langs/fa.json b/src/langs/fa.json index ad39b65..e34f008 100644 --- a/src/langs/fa.json +++ b/src/langs/fa.json @@ -131,7 +131,11 @@ "description_sign": "توضیحات امضا", "select_section": "لطفا یک بخش انتخاب کنید", "title1": "عنوان", - "quota": "فضا/ استفاده شده " + "quota": "فضا/ استفاده شده ", + "name_sign": "نام امضا" + }, + "app": { + "menu": "منو" }, "attachment_select": "اضافه کردن فایل ضمیمه", "domain": { diff --git a/src/pages/setting/signture/Signture.tsx b/src/pages/setting/signture/Signture.tsx index ca697ec..bb04228 100644 --- a/src/pages/setting/signture/Signture.tsx +++ b/src/pages/setting/signture/Signture.tsx @@ -1,11 +1,70 @@ +import Input from '@/components/Input' import Textarea from '@/components/Textarea' -import UploadBox from '@/components/UploadBox' -import { FC } from 'react' +import Button from '@/components/Button' +import { FC, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' +import { useSignatureData, useCreateSignature, useUpdateSignature } from './hooks/useSignatureData' +import { SignatureData } from './types/Types' const Signture: FC = () => { - const { t } = useTranslation() + const { data: signatureData, isLoading } = useSignatureData() + const createSignatureMutation = useCreateSignature() + const updateSignatureMutation = useUpdateSignature() + + const [formData, setFormData] = useState({ + name: '', + textContent: '' + }) + + const [isSubmitting, setIsSubmitting] = useState(false) + + useEffect(() => { + if (signatureData?.data?.signature) { + setFormData({ + name: signatureData.data.signature.name || '', + textContent: signatureData.data.signature.textContent || '' + }) + } + }, [signatureData]) + + const handleSubmit = async () => { + if (!formData.name.trim() || !formData.textContent.trim()) { + return + } + + setIsSubmitting(true) + + try { + if (signatureData?.data?.signature?.id) { + await updateSignatureMutation.mutateAsync(formData) + } else { + await createSignatureMutation.mutateAsync(formData) + } + } catch (error) { + console.error('Error saving signature:', error) + } finally { + setIsSubmitting(false) + } + } + + const handleInputChange = (field: keyof SignatureData, value: string) => { + setFormData(prev => ({ + ...prev, + [field]: value + })) + } + + if (isLoading) { + return ( +
+
+ در حال بارگذاری... +
+
+ ) + } + return (
@@ -20,14 +79,31 @@ const Signture: FC = () => {
- handleInputChange('name', e.target.value)} + placeholder="نام امضا را وارد کنید" />