Spaces:
Running
Running
// src/components/back-button/BackButton.tsx | |
"use client"; // این دستور برای Next.js App Router است، در Create React App کاربردی ندارد و میتوانید حذفش کنید. | |
import React from 'react'; | |
import { ChevronLeft } from "lucide-react"; | |
// استایلها مشابه دکمههای هدر دیگر خواهد بود که از App.scss میآید | |
// یا میتوانید کلاسهای Tailwind را مستقیماً اینجا اعمال کنید | |
// در اینجا از کلاس header-button که در App.scss تعریف شده استفاده میکنیم | |
// و در صورت نیاز padding یا سایز را برای تطابق با نمونه تنظیم میکنیم. | |
export default function BackButton() { | |
const handleClose = () => { | |
// بستن پنجره فعلی | |
// توجه: این ممکن است در تمام مرورگرها یا سناریوها کار نکند. | |
console.log("Attempting to close window..."); | |
window.close(); | |
// اگر در یک iframe هستید (مانند برخی از اسپیسهای هاگینگ فیس) | |
// و میخواهید به صفحه قبلی در هیستوری هاگینگ فیس برگردید، ممکن است نیاز به راه حل دیگری باشد. | |
// برای مثال، اگر میخواهید به صفحه اصلی اسپیس برگردید: | |
// window.location.href = "/"; // یا آدرس روت اسپیس شما | |
// اگر منظور از "برگشت" در یک اپلیکیشن تکصفحهای (SPA) است، | |
// باید از router خود (مثل React Router) استفاده کنید: | |
// import { useNavigate } from 'react-router-dom'; | |
// const navigate = useNavigate(); | |
// navigate(-1); // برای بازگشت به صفحه قبلی در هیستوری react-router | |
}; | |
return ( | |
<button // تغییر از div به button برای دسترسیپذیری و معنای بهتر | |
onClick={handleClose} | |
aria-label="Close window" | |
// استفاده از کلاس header-button برای ظاهر مشابه با دکمه نوتیفیکیشن | |
// مقادیر padding و اندازه آیکون از آن کلاس میآیند. | |
// کلاسهای نمونه کد شما: "flex items-center justify-center p-2 rounded-lg bg-gray-200" | |
// کلاس header-button ما: "flex items-center justify-center p-2 rounded-[0.625rem] bg-gray-200" | |
// که بسیار شبیه هستند. --radius-lg معادل 0.625rem (10px) است. | |
// و p-2 معادل padding: 0.5rem (8px) است. | |
className={"header-button"} // این کلاس باید در App.scss تعریف شده باشد و ظاهر مورد نظر را بدهد | |
> | |
{/* اندازه آیکون در نمونه شما 20 است، در header-button ما SVGها 24 هستند */} | |
{/* برای تطابق دقیق، یا اندازه SVG را در header-button تغییر دهید یا اینجا override کنید */} | |
<ChevronLeft size={20} strokeWidth={2.5} className={"opacity-70 dark:opacity-80"} /> {/* strokeWidth و opacity تنظیم شده برای وضوح بیشتر */} | |
</button> | |
); | |
} |