import { createContext, useContext, useMemo } from "react"; import { Helmet } from "react-helmet-async"; import { useLocation } from "react-router-dom"; const MetadataContext = createContext(null); const DEFAULT_METADATA = { title: "STARR | Philproperties", description: "This is still in development phase. Come back soon.", keywords: "philproperties, online courses, sales training", // Open Graph ogType: "website", ogImage: "https://95306gu5u4.ufs.sh/f/uBRuoG2BEPFD7KSEgHPf2HyENZzXqhfcGpQsYtIMT9F5RWUC", // Twitter twitterCard: "summary_large_image", twitterImage: "https://95306gu5u4.ufs.sh/f/uBRuoG2BEPFD7KSEgHPf2HyENZzXqhfcGpQsYtIMT9F5RWUC", }; export function MetadataProvider({ children, value }) { const location = useLocation(); const metadata = useMemo( () => ({ ...DEFAULT_METADATA, ...value }), [value] ); const url = typeof window !== "undefined" ? `${window.location.origin}${location.pathname}` : ""; return ( {/* Basic SEO */} {metadata.title} {/* Open Graph */} {metadata.ogImage && ( )} {/* Twitter */} {metadata.twitterImage && ( )} {children} ); } export function useMetadata() { const ctx = useContext(MetadataContext); if (!ctx) { throw new Error("useMetadata must be used within MetadataProvider"); } return ctx; }