diff --git a/apps/backoffice/app/components/FolderPicker.tsx b/apps/backoffice/app/components/FolderPicker.tsx
index 0843aae..429cbe5 100644
--- a/apps/backoffice/app/components/FolderPicker.tsx
+++ b/apps/backoffice/app/components/FolderPicker.tsx
@@ -1,6 +1,7 @@
"use client";
import { useState } from "react";
+import { createPortal } from "react-dom";
import { FolderBrowser } from "./FolderBrowser";
import { FolderItem } from "../../lib/api";
import { Button } from "./ui";
@@ -64,14 +65,14 @@ export function FolderPicker({ initialFolders, selectedPath, onSelect }: FolderP
{/* Popup Modal */}
- {isOpen && (
+ {isOpen && createPortal(
<>
{/* Backdrop */}
-
setIsOpen(false)}
/>
-
+
{/* Modal */}
@@ -121,7 +122,8 @@ export function FolderPicker({ initialFolders, selectedPath, onSelect }: FolderP
- >
+ >,
+ document.body
)}
);
diff --git a/apps/backoffice/app/components/LibraryActions.tsx b/apps/backoffice/app/components/LibraryActions.tsx
index dd4282b..e781e92 100644
--- a/apps/backoffice/app/components/LibraryActions.tsx
+++ b/apps/backoffice/app/components/LibraryActions.tsx
@@ -1,6 +1,7 @@
"use client";
-import { useState, useRef, useEffect, useTransition } from "react";
+import { useState, useTransition } from "react";
+import { createPortal } from "react-dom";
import { Button } from "../components/ui";
import { ProviderIcon } from "../components/ProviderIcon";
import { useTranslation } from "../../lib/i18n/context";
@@ -24,23 +25,11 @@ export function LibraryActions({
metadataProvider,
fallbackMetadataProvider,
metadataRefreshMode,
- onUpdate
}: LibraryActionsProps) {
const { t } = useTranslation();
const [isOpen, setIsOpen] = useState(false);
const [isPending, startTransition] = useTransition();
const [saveError, setSaveError] = useState(null);
- const dropdownRef = useRef(null);
-
- useEffect(() => {
- const handleClickOutside = (event: MouseEvent) => {
- if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {
- setIsOpen(false);
- }
- };
- document.addEventListener("mousedown", handleClickOutside);
- return () => document.removeEventListener("mousedown", handleClickOutside);
- }, []);
const handleSubmit = (formData: FormData) => {
setSaveError(null);
@@ -89,11 +78,11 @@ export function LibraryActions({
};
return (
-
-