Ezmary commited on
Commit
066aee2
·
verified ·
1 Parent(s): 9b55c0b

Create src/components/back-button/BackButton.tsx

Browse files
src/components/back-button/BackButton.tsx ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // src/components/back-button/BackButton.tsx
2
+ "use client"; // این دستور برای Next.js App Router است، در Create React App کاربردی ندارد و می‌توانید حذفش کنید.
3
+
4
+ import React from 'react';
5
+ import { ChevronLeft } from "lucide-react";
6
+
7
+ // استایل‌ها مشابه دکمه‌های هدر دیگر خواهد بود که از App.scss می‌آید
8
+ // یا می‌توانید کلاس‌های Tailwind را مستقیماً اینجا اعمال کنید
9
+ // در اینجا از کلاس header-button که در App.scss تعریف شده استفاده می‌کنیم
10
+ // و در صورت نیاز padding یا سایز را برای تطابق با نمونه تنظیم می‌کنیم.
11
+
12
+ export default function BackButton() {
13
+ const handleClose = () => {
14
+ // بستن پنجره فعلی
15
+ // توجه: این ممکن است در تمام مرورگرها یا سناریوها کار نکند.
16
+ console.log("Attempting to close window...");
17
+ window.close();
18
+
19
+ // اگر در یک iframe هستید (مانند برخی از اسپیس‌های هاگینگ فیس)
20
+ // و می‌خواهید به صفحه قبلی در هیستوری هاگینگ فیس برگردید، ممکن است نیاز به راه حل دیگری باشد.
21
+ // برای مثال، اگر می‌خواهید به صفحه اصلی اسپیس برگردید:
22
+ // window.location.href = "/"; // یا آدرس روت اسپیس شما
23
+
24
+ // اگر منظور از "برگشت" در یک اپلیکیشن تک‌صفحه‌ای (SPA) است،
25
+ // باید از router خود (مثل React Router) استفاده کنید:
26
+ // import { useNavigate } from 'react-router-dom';
27
+ // const navigate = useNavigate();
28
+ // navigate(-1); // برای بازگشت به صفحه قبلی در هیستوری react-router
29
+ };
30
+
31
+ return (
32
+ <button // تغییر از div به button برای دسترسی‌پذیری و معنای بهتر
33
+ onClick={handleClose}
34
+ aria-label="Close window"
35
+ // استفاده از کلاس header-button برای ظاهر مشابه با دکمه نوتیفیکیشن
36
+ // مقادیر padding و اندازه آیکون از آن کلاس می‌آیند.
37
+ // کلاس‌های نمونه کد شما: "flex items-center justify-center p-2 rounded-lg bg-gray-200"
38
+ // کلاس header-button ما: "flex items-center justify-center p-2 rounded-[0.625rem] bg-gray-200"
39
+ // که بسیار شبیه هستند. --radius-lg معادل 0.625rem (10px) است.
40
+ // و p-2 معادل padding: 0.5rem (8px) است.
41
+ className={"header-button"} // این کلاس باید در App.scss تعریف شده باشد و ظاهر مورد نظر را بدهد
42
+ >
43
+ {/* اندازه آیکون در نمونه شما 20 است، در header-button ما SVGها 24 هستند */}
44
+ {/* برای تطابق دقیق، یا اندازه SVG را در header-button تغییر دهید یا اینجا override کنید */}
45
+ <ChevronLeft size={20} strokeWidth={2.5} className={"opacity-70 dark:opacity-80"} /> {/* strokeWidth و opacity تنظیم شده برای وضوح بیشتر */}
46
+ </button>
47
+ );
48
+ }