import { useState, useEffect } from "react"; import { Link } from "react-router-dom"; import { ExternalLink, Sun, Moon, Monitor } from "lucide-react"; import { SiFirefox, SiGooglechrome, SiGithub, SiBluesky, SiApple, SiKofi, SiDiscord, } from "react-icons/si"; import { FaEdge } from "react-icons/fa"; import { useAuth } from "../context/AuthContext"; import { useTheme } from "../context/ThemeContext"; import { getTrendingTags } from "../api/client"; const isFirefox = typeof navigator !== "undefined" && /Firefox/i.test(navigator.userAgent); const isEdge = typeof navigator !== "undefined" && /Edg/i.test(navigator.userAgent); const isMobileSafari = typeof navigator !== "undefined" && /iPhone|iPad|iPod/.test(navigator.userAgent) && /Safari/.test(navigator.userAgent) && !/CriOS|FxiOS|OPiOS|EdgiOS/.test(navigator.userAgent); function getExtensionInfo() { if (isMobileSafari) { return { url: "https://margin.at/soon", icon: SiApple, name: "iOS", label: "Coming Soon", }; } if (isFirefox) { return { url: "https://addons.mozilla.org/en-US/firefox/addon/margin/", icon: SiFirefox, name: "Firefox", label: "Install for Firefox", }; } if (isEdge) { return { url: "https://microsoftedge.microsoft.com/addons/detail/margin/nfjnmllpdgcdnhmmggjihjbidmeadddn", icon: FaEdge, name: "Edge", label: "Install for Edge", }; } return { url: "https://chromewebstore.google.com/detail/margin/cgpmbiiagnehkikhcbnhiagfomajncpa/", icon: SiGooglechrome, name: "Chrome", label: "Install for Chrome", }; } export default function RightSidebar() { const { theme, setTheme } = useTheme(); const { isAuthenticated } = useAuth(); const ext = getExtensionInfo(); const ExtIcon = ext.icon; const [trendingTags, setTrendingTags] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { getTrendingTags() .then((tags) => setTrendingTags(tags)) .catch((err) => console.error("Failed to fetch trending tags:", err)) .finally(() => setLoading(false)); }, []); return ( ); }