diff --git a/artifacts/ehsan-poc/index.html b/artifacts/ehsan-poc/index.html index 359e252..88c4873 100644 --- a/artifacts/ehsan-poc/index.html +++ b/artifacts/ehsan-poc/index.html @@ -3,16 +3,16 @@ - EHSAN Closed Donation Loop - + منصة إحسان + - - + + - - - + + + diff --git a/artifacts/ehsan-poc/public/favicon.png b/artifacts/ehsan-poc/public/favicon.png new file mode 100644 index 0000000..7a05564 Binary files /dev/null and b/artifacts/ehsan-poc/public/favicon.png differ diff --git a/artifacts/ehsan-poc/src/App.tsx b/artifacts/ehsan-poc/src/App.tsx index 0769406..af10961 100644 --- a/artifacts/ehsan-poc/src/App.tsx +++ b/artifacts/ehsan-poc/src/App.tsx @@ -6,6 +6,7 @@ import { LanguageProvider } from "./contexts/LanguageContext"; import { CartProvider } from "./contexts/CartContext"; import { AuthProvider, useAuth } from "./contexts/AuthContext"; import { AppLayout } from "./components/layout/AppLayout"; +import { DocumentTitle } from "./hooks/useDocumentTitle"; import NotFound from "@/pages/not-found"; import { ComponentType } from "react"; @@ -37,6 +38,7 @@ function Protected({ component: Component }: { component: ComponentType }) function Router() { return ( + diff --git a/artifacts/ehsan-poc/src/hooks/useDocumentTitle.ts b/artifacts/ehsan-poc/src/hooks/useDocumentTitle.ts new file mode 100644 index 0000000..df9d9d3 --- /dev/null +++ b/artifacts/ehsan-poc/src/hooks/useDocumentTitle.ts @@ -0,0 +1,33 @@ +import { useEffect } from "react"; +import { useLocation } from "wouter"; +import { useLanguage } from "../contexts/LanguageContext"; + +function pageNameForPath(path: string, meta: Record): string { + if (path === "/" || path === "") return meta.home; + if (path.startsWith("/opportunities")) return meta.opportunities; + if (path.startsWith("/cart")) return meta.cart; + if (path.startsWith("/about")) return meta.about; + if (path.startsWith("/track")) return meta.track; + if (path.startsWith("/donate")) return meta.donate; + if (path.startsWith("/request")) return meta.request; + if (path.startsWith("/waqf")) return meta.waqf; + if (path.startsWith("/baraem")) return meta.baraem; + if (path.startsWith("/admin")) return meta.admin; + if (path.startsWith("/whatsapp-log")) return meta.whatsappLog; + if (path.startsWith("/thank-you")) return meta.thankYou; + if (path.startsWith("/login")) return meta.login; + return ""; +} + +export function DocumentTitle() { + const [location] = useLocation(); + const { t } = useLanguage(); + + useEffect(() => { + const meta = t.meta as Record; + const name = pageNameForPath(location, meta); + document.title = name ? `${name} - ${meta.platform}` : meta.platform; + }, [location, t]); + + return null; +} diff --git a/artifacts/ehsan-poc/src/lib/i18n/translations.ts b/artifacts/ehsan-poc/src/lib/i18n/translations.ts index 76f633a..9d7fcbf 100644 --- a/artifacts/ehsan-poc/src/lib/i18n/translations.ts +++ b/artifacts/ehsan-poc/src/lib/i18n/translations.ts @@ -1,4 +1,20 @@ export const en = { + meta: { + platform: "EHSAN Platform", + home: "Home", + opportunities: "Donation Opportunities", + cart: "Your Donation Cart", + about: "About EHSAN", + track: "Track Case", + donate: "Complete Donation", + request: "Request Support", + waqf: "Endowment", + baraem: "EHSAN Buds", + admin: "Admin Dashboard", + whatsappLog: "WhatsApp Log", + thankYou: "Submit Thank You", + login: "Login", + }, common: { ehsan: "EHSAN", home: "Home", @@ -400,6 +416,22 @@ export const en = { }; export const ar = { + meta: { + platform: "منصة إحسان", + home: "الصفحة الرئيسية", + opportunities: "فرص التبرع", + cart: "سلة تبرعاتك", + about: "عن إحسان", + track: "تتبع الحالة", + donate: "إتمام التبرع", + request: "طلب دعم", + waqf: "الوقف", + baraem: "براعم إحسان", + admin: "لوحة الإدارة", + whatsappLog: "سجل واتساب", + thankYou: "إرسال شكر", + login: "تسجيل الدخول", + }, common: { ehsan: "إحسان", home: "الرئيسية",