diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 76683e6..e6534ea 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1,3 +1,4 @@ +import { useEffect, useState } from "react"; import { Navigate, Route, Routes } from "react-router-dom"; import { Toaster } from "sonner"; @@ -13,6 +14,23 @@ import { AuthCallbackPage } from "./pages/AuthCallbackPage"; * can wrap `` with a `MemoryRouter` if needed. */ export default function App() { + const [isMobile, setIsMobile] = useState(false); + + useEffect(() => { + const mediaQuery = window.matchMedia("(max-width: 640px)"); + + const updateViewport = () => { + setIsMobile(mediaQuery.matches); + }; + + updateViewport(); + mediaQuery.addEventListener("change", updateViewport); + + return () => { + mediaQuery.removeEventListener("change", updateViewport); + }; + }, []); + return ( @@ -24,20 +42,24 @@ export default function App() { diff --git a/frontend/src/components/dashboard/ExportDropdown.jsx b/frontend/src/components/dashboard/ExportDropdown.jsx index 88e38d8..49729c9 100644 --- a/frontend/src/components/dashboard/ExportDropdown.jsx +++ b/frontend/src/components/dashboard/ExportDropdown.jsx @@ -16,6 +16,7 @@ import { export function ExportDropdown({ onExport, exportingFormat = null, + disabled = false, selectedCount = 0, isAuthenticated = false, newPublicationsCount = 0, @@ -61,7 +62,7 @@ export function ExportDropdown({ - - {open && ( -
- {["xml", "zip"].map((fmt, idx) => ( - - ))} -
+ ); }