{open && (
{options.map(({ value: optionValue, label, desc }, idx) => (
-
diff --git a/frontend/src/components/dashboard/SyncButton.jsx b/frontend/src/components/dashboard/SyncButton.jsx
index 70a6469..bca8420 100644
--- a/frontend/src/components/dashboard/SyncButton.jsx
+++ b/frontend/src/components/dashboard/SyncButton.jsx
@@ -5,7 +5,7 @@ import { Spinner } from "../ui/Spinner";
* Primary action button on the dashboard. Swaps icon + colour scheme
* depending on the sync lifecycle (idle → loading → success flash).
*/
-export function SyncButton({ onClick, status = "idle" }) {
+export function SyncButton({ onClick, status = "idle", className = "" }) {
const isLoading = status === "loading";
const isSuccess = status === "success";
@@ -20,7 +20,7 @@ export function SyncButton({ onClick, status = "idle" }) {
type="button"
onClick={onClick}
disabled={isLoading}
- className={`inline-flex items-center gap-2 rounded-lg px-[18px] py-2.5 text-sm font-medium transition-colors disabled:cursor-not-allowed ${palette}`}
+ className={`inline-flex items-center justify-center gap-2 rounded-lg px-[18px] py-2.5 text-sm font-medium transition-colors disabled:cursor-not-allowed ${palette} ${className}`.trim()}
>
{isLoading ? (
diff --git a/frontend/src/pages/DashboardPage.jsx b/frontend/src/pages/DashboardPage.jsx
index bedf4dd..b0c60a4 100644
--- a/frontend/src/pages/DashboardPage.jsx
+++ b/frontend/src/pages/DashboardPage.jsx
@@ -224,7 +224,11 @@ export function DashboardPage() {
researcher={researcher}
actions={
<>
-
+
0
- ? `Descargar lo nuevo de todos (${allNewIds.length})`
- : "Todo descargado"
- : `Descargar todo (${allIds.length})`;
-
- const globalDisabled =
- Boolean(globalExporting) ||
- (isAuthenticated ? allNewIds.length === 0 : allIds.length === 0);
-
return (
@@ -233,33 +239,15 @@ export function GroupResultsPage() {
{/* Global export buttons */}
{!loading && results.length > 0 && (
-
-
- {["xml", "zip"].map((fmt) => (
-
- ))}
-
+
)}